我有一个GridView控件与数据源相连,并允许对行进行编辑。我使用标准的编辑/保存/删除按钮,这些按钮都指向Update、Cancel和edit GridView命令。
我想添加一个额外的按钮"Next",放在保存/取消按钮旁边。它的功能与保存按钮相同,但会新增一行记录到网格中,并将该行放入编辑模式。为此,我已经在GridView的Updated事件中添加了代码,用于向数据库添加新记录、重新绑定网格,并设置EditIndex。看起来似乎可以正常工作,但网格实际上并没有停留在编辑模式。我删掉了添加新记录的代码,只留下设置EditIndex的语句,但网格仍然无法保持在编辑模式。
在这种情况下,是否有可能强制网格保持在编辑模式?看起来除非你设置GridViewUpdatedEventArgs的cancel属性,否则网格将自动切换到查看模式。但我不想在这种情况下设置cancel属性,因为我希望GridView触发我的数据源对象保存记录。
如果这种方法行不通,似乎我需要允许更新正常进行,然后返回客户端并发送另一个服务器请求来添加记录。但我不想这样做,我希望在一个回合的上下文中执行必要的操作。
以下是简化后的代码:
我想添加一个额外的按钮"Next",放在保存/取消按钮旁边。它的功能与保存按钮相同,但会新增一行记录到网格中,并将该行放入编辑模式。为此,我已经在GridView的Updated事件中添加了代码,用于向数据库添加新记录、重新绑定网格,并设置EditIndex。看起来似乎可以正常工作,但网格实际上并没有停留在编辑模式。我删掉了添加新记录的代码,只留下设置EditIndex的语句,但网格仍然无法保持在编辑模式。
在这种情况下,是否有可能强制网格保持在编辑模式?看起来除非你设置GridViewUpdatedEventArgs的cancel属性,否则网格将自动切换到查看模式。但我不想在这种情况下设置cancel属性,因为我希望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;
}