我有一个gridview,其中我将datasource设置为数据表。无论我对gridview做了什么更新,它都应该只反映在数据表而不是数据库中。当我点击更新时,我必须得到我想要更新的特定行的行号。如何在gridview的rowupdating事件中获取行号以更新数据表?假设我有一个datakey,如果我得到那个唯一的id,我该如何更新数据源?有人可以帮忙吗?
答案 0 :(得分:1)
这是获取更新行的行ID的方法:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string id = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
}
也许你只想要 e.RowIndex 。但是上面的代码返回了该行的指定唯一数据键。
答案 1 :(得分:0)
如果应用了排序,则gridview和datatable中的行号将不匹配。
因此,如果您尝试使用gridview中的行号进行更新,则可能会以不正确的值结束。
更新应基于gridview数据源中的唯一ID 。
答案 2 :(得分:0)
<asp:TemplateField HeaderText="Slno">
<ItemTemplate>
<div style="margin-top: 0px; color: black;">
<asp:Label ID="txtid" runat="server" Font-Size="8.5pt" ForeColor="#000f9f" Text='<%# Container.DataItemIndex+1 %>'></asp:Label>
</div>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="30px" />
</asp:TemplateField>
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
Label id = (Label) GridView1.Rows[e.RowIndex].findcontrol("slno");
}