【发布时间】:2010-02-12 21:51:58
【问题描述】:
我有一个 GridView 控件连接到我允许行编辑的数据源。我使用指向更新、取消和编辑 GridView 命令的标准编辑/保存/删除按钮。
我想在保存/取消按钮中添加一个附加按钮,即“下一步”。这将与保存按钮的功能相同,但还会向网格添加额外的行,并将该行置于编辑模式。为此,我在 GridView 的 Updated 事件中添加了代码,该事件将新记录添加到 db、重新绑定网格并设置 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;
}
【问题讨论】: