获取gridview中的行号

时间:2009-08-11 06:39:11

标签: asp.net vb.net

我有一个gridview,其中我将datasource设置为数据表。无论我对gridview做了什么更新,它都应该只反映在数据表而不是数据库中。当我点击更新时,我必须得到我想要更新的特定行的行号。如何在gridview的rowupdating事件中获取行号以更新数据表?假设我有一个datakey,如果我得到那个唯一的id,我该如何更新数据源?有人可以帮忙吗?

3 个答案:

答案 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");
}