我有gridview使用存储过程从数据库中的一个表中放入数据。 单击编辑按钮后,将发生回发,刷新gridview上的数据,错误的行以edir模式显示。
我发现原因是点击编辑链接javascript:__doPostBack('GridView','Edit$0')
会显示在状态栏上,这是一个问题。 Edit$0
表示行的绝对值,当回发从数据库获取数据时,错误行显示在编辑模式中...
我认为解决方案将基于非行号而不是所选行的一些唯一值进行编辑。
如果有人回答,请提供帮助。
答案 0 :(得分:0)
如果您使用的是gridview,我建议使用原生的OnRowEditing =“GridViewEditEventHandler” 然后在
背后的代码中 protected void TaskGridView_RowEditing(object sender, GridViewEditEventArgs e)
{
//Set the edit index.
TaskGridView.EditIndex = e.NewEditIndex;
//Bind data to the GridView control.
BindData();
}
请参阅http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowediting(v=vs.110).aspx
但是,如果出于某种原因,当您按下编辑按钮然后将Itemtemplate更改为显示/隐藏值时,您正在创建OnClick功能,我建议您这样做
GridViewRow gvr = (GridViewRow)(((Button)e.CommandSource).NamingContainer);
int RowIndex = gvr.RowIndex;
从那里你可以做.findcontrol来找到你想要的特定项目: TextBox txtbox =(TextBox)TaskGridView.Rows [RowIndex] .FindControl(“textBoxID”);
希望这有帮助