![](/img/trans.png)
[英]gridview: How to get a value from database cell of the current edited row?
[英]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.