簡體   English   中英

如何從gridview獲取單元格值?

[英]How to get cell value from a 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)。 任何人都可以告訴我在哪個事件中或通過代碼,我可以獲得此值?請,我非常需要它。 提前致謝。

嘗試這個:

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

什么目的? 例如。 如果要刪除或編輯特定項目,請單擊表行中的按鈕?

我將使用JQuery來訪問divProducts中Label5的最后一個實例。 首先,我將向Label5添加一個附加類,以便將其標記為與表中的所有其他跨度不同(注意:asp:Label將呈現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();

好。 我猜你想做的就是分頁。 如果我是對的,那么有很多很多教程可以進行表分頁(按編號順序分頁批量行)。 在ASP.Net中,我認為標准的“ GridView”控件有一個名為“ AlloWPaging”的屬性。

從我這邊來說這是最好的主意。 --

使用DOM遍歷<tr>元素。 首先使用<table>元素。 然后得到第一個孩子。 雖然<table>元素內還有更多的<tr>元素,但仍要繼續進行迭代。 當您獲得最后一個''元素時,您就在那。

您可以在最后一個TR中查找TD,最后一個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;
}

(有時,當實際代碼不在我面前時,很難提供幫助。)

您需要為GridView提供一個HTML ID(在您的情況下為grdPrevious)。

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

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

</script>

並且您可以使用John Hartsock在

鏈接。

希望對您有幫助。 :)(實際上我不是asp.net開發人員)

試試這個!

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

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

希望這對您有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM