2011-12-29 78 views
0

友人は、私は次のように設計された私のWebページでのGridViewをしました: - 私は、データソースと、このグリッドを結合していGridviewからセルの値を取得するには?

<div id="divProducts" style="height:200px; overflow:auto"> 
     <asp:GridView ID="grdPrevious" runat="server" Width="100%" 
      AutoGenerateColumns="false" ShowHeader="false" GridLines="None" 
      ShowFooter="true" AllowPaging="false"> 
      <Columns> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <tr> 
          <td style="width:20%; visibility:hidden"> 
           <label class="labelHead">Activity Id </label> 
          </td><td></td> 
          <td style="width:80%; visibility:hidden"> 
           <asp:Label ID="Label5" runat="server" 
           Text='<%# Eval("USER_ACTIVITIES_ID") %>' 
           CssClass="labelCss"></asp:Label> 
          </td> 
         </tr> 
         <tr> 
          <td style="width:20%" > 
          <label class="labelHead">Date </label> 
          </td><td>:</td> 
          <td style="width:80%"> 
           <asp:Label ID="Label1" runat="server" 
            Text='<%# Eval("ACTIVITY_DATE1") %>' 
            CssClass="labelCss"></asp:Label> 
          </td> 
         </tr> 
         <tr> 
          <td> 
          <label class="labelHead">Interaction Type </label> 
          </td> 
          <td>:</td> 
          <td> 
           <asp:Label ID="Label2" runat="server" 
            Text='<%# Eval("INTERFACE_DESCRIPTION") %>' 
            CssClass="labelCss" ></asp:Label> 
          </td> 
         </tr> 
         <tr> 
          <td> 
           <label class="labelHead">Prospect</label> 
          </td> 
          <td>:</td> 
          <td> 
           <asp:Label ID="Label3" runat="server" 
            Text='<%# Eval("PROSPECT_DESCRIPTION") %>' 
            CssClass="labelCss"></asp:Label> 
          </td> 
         </tr> 
         <tr> 
          <td valign="top" > 
           <label class="labelHead">Note </label> 
          </td> 
          <td valign="top">:</td> 
          <td valign="top"> 
           <asp:Label ID="Label4" runat="server" 
            Text='<%# Eval("NOTES") %>' CssClass="labelCss"> 
           </asp:Label> 
          </td>                 
         </tr> 
         <tr> 
          <td colspan="3"><hr size="1px" color="#D5DEA1" 
          style="margin:10px 0px;" /> 
          </td> 
         </tr> 
        </ItemTemplate> 
        <ItemStyle Font-Names="Trebuchet MS;" /> 
       </asp:TemplateField> 
      </Columns> 
      <EmptyDataTemplate> 
       <table width="100%" cellpadding="0" cellspacing="0" border="0"> 
        <tr> 
         <td align="center" class="gridViewNoRecords"> 
          No Records found 
         </td> 
        </tr> 
       </table> 
      </EmptyDataTemplate> 
     </asp:GridView> 
    </div> 

。今、私は "USER_ACTIVITIES_ID"の値をグリッドビューの最後に設定された行から取得したいと思います。私はこのIDを保持し、javascriptを使用してプロジェクトで他の目的のためにそれを使用する隠しフィールドを使用しています。しかし、私の問題はIDの価値を得ていないということです(バックエンドコーディングでも、JavaScriptでも)。誰がどのイベントやコードでこの価値を得ることができるのか教えてもらえますか?前もって感謝します。

+0

どのように値を設定していますか、隠しフィールドやグリッドから値を取得できないかどうかわかりません。実際の問題は何ですか? – V4Vendetta

+0

最後の「USER_ACTIVITIES_ID」の値を取得できませんでした。グリッドの任意の変数(隠しフィールドまたは通常の変数)。私はsqlserver 2005データベースからデータを取得し、それをデータセットに入れ、このデータセットでグリッドをバインドします。値を取得することはできません。 – Sukanya

+0

@Alisonなぜ人々は質問を編集しますか?それは読めるか分かりませんか? – Sukanya

答えて

1

この試してみてください:あなたが提供する必要が

int lastrow = grdPrevious.Rows.Count - 1; 
Label lb = (Label)grdPrevious.Rows[lastrow].FindControl("Label5"); 
Response.Write(lb.Text); 
+0

、ありがとう、ありがとうございました。私が欲しかったのは... – Sukanya

0

目的は何ですか?たとえば。特定のアイテムを削除または編集するには、テーブル行のボタンをクリックしますか?

+0

いいえ、グリッドに最後に表示されたIDを取得してから、次の10個のデータをsqlserver 2005データベースのテーブルから取得する必要があります。 – Sukanya

0

divProducts内のLabel5の最後のインスタンスにアクセスするためにJQueryを使用します。まず、それはテーブル内の他のすべてのスパンは異なるマークされているように、私はLabel5に追加のクラスを追加します(注:ASPを:ラベルは、SPANをレンダリングします)

<asp:Label ID="Label5" runat="server" 
          Text='<%# Eval("USER_ACTIVITIES_ID") %>' 
          CssClass="labelCss useractivity"></asp:Label> 

次に、このような何かにそれを見つけるためにクライアント。

var id=$("#divProducts").children("span[class=useractivity]:last").text(); 
+0

ありがとうございますが、それは私のために働いていません。 – Sukanya

0

です。私がしたいことは、ページネーションです。私が正しければ、テーブルページ付け(バルク行のページング、番号付きシーケンスのページング)を行う多くのチュートリアルがたくさんあります。 ASP.Netには、標準の 'GridView'コントロールのための 'AlloWPaging'というプロパティがあると思います。

+0

ありがとうございます。スクロールダウンイベントでページ分割をしています。コードの後半部分が来ます。しかし、最初にグリッドから最後のIDを取得する必要があります。 – Sukanya

0

これは私の側からのベストアイデアです。 -

DOMを使用して<tr>要素を反復処理します。まず、<table>要素をとります。 次に、firstChildを取得します。 <table>要素内にはさらに<tr>個の要素がありますが、反復処理を継続するのは です。あなたが最後の要素を取得すると、あなたはそこにいます。

最後のUSER_ACTIVITY_IDが格納されている最後のTRのTDを検索できます。 次に、内部のテキスト値を取得できます。 簡単な例になります -

getTextFromTD = function() { 
var gridView = document.getElementById("myGridView"); 
var lastTR = gridView.childNodes.item(5); 
var ourRequiredTD = lastTR.childNodes(2); 
requiredText = ourRequiredTD.innerHTML; 
} 

(時にはそれが実際のコードは私のインフロントでない場合に役立つことが困難となる。)

+0

を反復する方法と、コードを書く場所についてはわかりません。何か提供することはできますか? – Sukanya

0

をGridViewのHTML IDです(あなたの場合はgrdPreviousです)。

あなたは、デザインビューでWebページを開くと<HEAD>に書くことができます -

<script language='javascript' runat='server'> 

</script> 

とあなたはjavascriptが

thisリンクにジョンHartsockによって記載されたコードのようなものを使用してすることができます。

お手伝いします。 :)(実際に私はasp.netの開発者ではない)

0

これを試してみてください!

int lastRecord = grdPrevious.Rows.Count - 1; 
Label lbl; 
lbl = (Label)grdPrevious.Rows[lastRecord].Cells[0].FindControl("Label5"); 

int ID = Convert.ToInt32(lbl.Text); 

関連する問題