我想通过gridview更新我的表格。 [Visual Studio 2010]
为此我做了以下事情:
的GridView>> EditColumns>> CommandField>>编辑,更新,取消添加到网格。
的GridView>> EditTemplates>>添加了文本框名称“TextBox1
”>>结束编辑模板。
行编辑事件:
public int i;
protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
i=gv.EditIndex = e.NewEditIndex;
}
行更新事件:
protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
try
{
TextBox txtSymbol;
txtSymbol = ((TextBox)(gv.Rows[e.RowIndex].Cells[3].FindControl("TextBox1")));
con.Open();
cmd = new SqlCommand("update temp set Symbol=@Symbol", con);
cmd.Parameters.AddwithValue("@Symbol",txtSymbol.Text);
cmd.ExecuteNonQuery();
con.Close();
}
catch (Exception ex)
{
}
}
我从here提到了这段代码。
这里提到的第一行应该是这样的:
txtSymbol =((TextBox)(gv.Rows [e.RowIndex] .Cells [3] .FindControl(“TextBox1”)));
所有这些编码的东西都不起作用。
`((TextBox)(gv.Rows[e.RowIndex].Cells[3].FindControl("TextBox1")))`
具有空值。
行更新事件中的异常为“Null Referance Exception。”
我的代码有什么问题?
我犯错的地方。
请指导我。
答案 0 :(得分:1)
protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
gv.EditIndex = e.NewEditIndex;
BindGridView();//You have to Bind GridView Again Here...
}
如果你不再绑定Gridview在设置它之后编辑索引你的控件没有限制使用gridview.Thats为什么它给你nullreferenceexception。