Asp.net
將 ID 添加到 GridView 行
如何將 ID 添加到 GridView 行(應呈現 ID)?
我正在使用 .NET (C#)。我有 GridView 控制項。
我有一些處理表行的 javascript 函式,但必須有這些行的 ID:
<table> <tr id=1> ... <tr id=2> ... //id should come from database ..我的 GridView 是從數據庫中的數據生成的。重要的是不要有 FAKE ROW IDS,而是真正來自 DB 的行 id(有一些 ajax javascript 函式可以根據這些 ID 和使用者對錶的操作來更新 DB)。
我的 GridView 的一部分如下:
<asp:GridView ID="grdNews" runat="server" BorderStyle="None" RowStyle-BorderStyle="None" GridLines="None" CssClass="table" Style="white-space: nowrap" AutoGenerateColumns="False" DataKeyNames="ID" AllowSorting="True" AllowPaging="true" OnSorting="grdNews_Sorting" OnRowDataBound="grdNews_RowDataBound"> <RowStyle BorderStyle="None" /> <HeaderStyle CssClass="nodrag" /> <Columns> ....我嘗試了以下方法:
protected void grdNews_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.ID = grdNews.DataKeys[e.Row.RowIndex].Value.ToString(); } }這為 e.Row.ID 提供了正確的值,但這不會呈現此 ID。
那麼,如何從數據庫中為 GridView 中的行渲染 ID?
嘗試跟隨….
protected void grdNews_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { GridViewRow row = e.Row; row.Attributes["id"] =grdNews.DataKeys[e.Row.RowIndex].Value.ToString(); } }
最簡單的方法是使用可以從客戶端和伺服器端訪問的隱藏欄位。
<Columns> <asp:TemplateField > <ItemTemplate> <asp:HiddenField ID="HiddenID" runat="server" Value='<%#Eval("ID") %>' /> </ItemTemplate> </asp:TemplateField> .... </Columns>