我有一个GridView控件连接到允许行编辑的数据源。我使用指向更新,取消和编辑GridView命令的标准编辑/保存/删除按钮。GridView更新后覆盖editindex
我想添加一个额外的按钮,“下一步”内嵌保存/取消按钮。这将与保存按钮功能相同,但也会向网格添加一行,并将该行放入编辑模式。为此,我将代码添加到GridView的Updated
事件中,该事件向db添加新记录,重新绑定网格并设置editindex。这似乎工作,但网格实际上并没有在编辑模式下返回。我删除了新的记录代码,只留下声明来设置editindex,但网格仍然不会保持编辑模式。
在这种情况下是否可以强制网格保持编辑模式?看起来,除非你设置GridViewUpdatedEventArgs
的取消属性,网格将翻转到查看模式。我不想在这种情况下设置取消属性,因为我希望GridView触发我的数据源对象以保存记录。
如果这不起作用,看起来我需要允许更新正常进行,返回到客户端,然后发送另一个服务器请求来添加记录。我不想这样做,我想在一次往返的情况下执行必要的操作。
这里是代码(简体)看起来像:
protected void Button1_Click(object sender, EventArgs e)
{
// Works Fine
this.sampleDataSource.Insert();
this.sampleGridView.DataBind();
this.sampleGridView.EditIndex = this.sampleGridView.Rows.Count - 1;
}
protected void sampleGridView_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
// Grid will display new row, but will not be in edit mode
this.sampleDataSource.Insert();
this.sampleGridView.DataBind();
this.sampleGridView.EditIndex = this.sampleGridView.Rows.Count - 1;
}
我已经有了一个插入新行并自动翻转到编辑模式的工作方法。但是我一直在gridview上下文之外调用它。当我尝试在GridView更新过程中执行此操作时,EditIndex或者不起作用,或者被更新过程覆盖。我不确定这是否是一个具有约束力的问题,但我一定会玩这个。我会试着想出一个这个问题的简明例子 – 2010-02-13 01:50:49
重新阅读你的问题后,我可以看到你正在使用一些自动魔术数据绑定和更新。我通常会自己避免这种情况,并在代码隐藏中处理这些任务......正是出于这个原因。当事情不起作用时,很容易看到发生了什么问题。 – Bryan 2010-02-13 22:22:00