存储RowEditing的ID,而不是索引

本文关键字:索引 RowEditing ID 存储 | 更新日期: 2023-09-27 18:16:17

在我的应用程序中,我为用户提供了搜索数据库的选项。当他们点击编辑时,我希望GridView通过存储其ID只显示他们正在更新的行。

我正在尝试下面的代码,但它除了Control之外没有返回任何东西。

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
     string value = GridView1.Rows[e.NewEditIndex].Cells[3].ToString();
}

关于如何存储我正在寻找的值的任何想法?

存储RowEditing的ID,而不是索引

使用单元格的Text属性

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
     string value = GridView1.Rows[e.NewEditIndex].Cells[3].Text;
     // or 
     string value = GridView1.Rows[e.NewEditIndex].Cells[3].Value;
}

或者,如果您已经将控件声明为<TemplateField>,并试图获取其值,则尝试

string value = ""
Label lblID = (Label)GridView1.Rows[e.NewEditIndex].FindControl("lblID");
value = lblID.Text;

另一种选择是为gridview添加DataKeyNames="ID",您可以使用

检索它
 // assuming that the value of your datakey is numeric value 
 long Id = long.Parse(GridView1.DataKeys[e.NewEditIndex].Values["ID"].ToString());   

注意:DataKeyNames属性可以添加多个逗号分隔值