2011-12-29 216 views
0

朋友們,我有一個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> 

我結合這個網格數據源。現在,我想從gridview的最後一個填充行中獲取「USER_ACTIVITIES_ID」的值。我正在使用hiddenfield來保存此id並將其用於項目中使用javascript的其他目的。但是,我的問題是我沒有獲得ID的價值(無論是後端編碼還是JavaScript)。任何人都可以告訴我在哪個事件或代碼中,我可以得到這個值嗎?請,我非常需要它。提前致謝。

+0

您是如何設置值的,不清楚您無法從隱藏字段或網格獲取值,總之實際問題 – V4Vendetta 2011-12-29 07:45:21

+0

我無法從上一次獲取「USER_ACTIVITIES_ID」的值將行的網格添加到任何變量(hiddenfield或normal變量)。我從sqlserver 2005數據庫中提取數據並將其放入數據集中,並將網格與此數據集綁定。但我無法'GET'值。 – Sukanya 2011-12-29 07:53:48

+0

@Alison你爲什麼要編輯這個問題?它不可讀或不可理解? – Sukanya 2012-01-04 06:43:20

回答

1

試試這個:

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

,謝謝你,非常感謝你..只是想要什麼... – Sukanya 2011-12-29 09:48:29

0

目的是什麼?例如。如果你想刪除或編輯特定的項目,點擊表格中的一個按鈕?

+0

不,我必須獲取網格中顯示的最後一個ID,然後從sqlserver 2005數據庫的表中獲取下一個10個數據。 – Sukanya 2011-12-29 07:55:44

0

我會用jQuery來訪問divProducts中Label5的最後一個實例。首先,我會添加一個額外的類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 2011-12-29 08:05:11

0

好的。我猜你想要做的是分頁。如果我是對的,有很多許多教程來做表格分頁(按照編號順序分頁批量行)。在ASP.Net中,我認爲標準的'GridView'控件有一個名爲'AlloWPaging'的屬性。

+0

Thanks.I'm在向下滾動事件中進行分頁。代碼的這一部分出現在稍後階段。但首先,我需要從網格中獲取最後一個「ID」。 – Sukanya 2011-12-29 08:07:54

0

這是我身邊最好的主意。 -

使用DOM遍歷<tr>元素。首先採取<table>元素。 然後獲得firstChild。 <table>元素內部有更多<tr>元素 繼續迭代。當你得到最後一個元素時,你就在那裏。

您可以在最後一個TR中查找最後一個USER_ACTIVITY_ID所在的TD。 然後你可以得到內部的文本值。 一個簡單的例子是 -

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

(有時變得困難時幫助了實際的代碼是不盈我的。)

+0

我不知道如何遍歷以及在哪裏編寫代碼。你可以提供一些東西嗎? – Sukanya 2011-12-29 08:53:39

0

您需要提供一個HTML ID到GridView(在你的情況下它是grdPrevious)。

您可以在設計視圖中打開網頁,並在<HEAD>寫 -

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

</script> 

,你也可以javascript使用有約翰Hartsock列出的代碼,例如一個在

this鏈接。

希望它可以幫助你。 :)(其實我不是一個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); 

希望這一個幫助!

相關問題