在我的应用程序中,我为用户提供搜索数据库的选项。当他们单击编辑时,我希望GridView仅通过存储其ID来显示他们正在更新的行。
我正在尝试以下代码,但它不会返回除Control之外的任何内容。
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
string value = GridView1.Rows[e.NewEditIndex].Cells[3].ToString();
}
关于如何存储我正在寻找的价值的任何想法?
答案 0 :(得分:2)
使用单元格的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
属性。