2009-08-11 87 views
0

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

+1

你可以把你的网格视图的代码? – Ali 2013-09-10 06:29:18

回答

0

如果应用了排序,那么gridview和datatable中的行号将不匹配。

所以,如果你尝试更新gridview中的行号,它可能会以不正确的值结束。

更新应该基于gridview数据源中的唯一ID

+0

如果soting不存在,我该如何获得rownumber – user42348 2009-08-11 06:54:32

1

这是让你更新的行的行ID的方式:

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    string id = GridView1.DataKeys[e.RowIndex].Values[0].ToString(); 
} 

也许你只想要e.RowIndex。但上面的代码返回该行的指定唯一数据键。

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