是否可以在网格外以编程方式调用网格的更新命令?

时间:2013-02-21 15:15:52

标签: asp.net gridview webforms

我有一个带有编辑按钮的GridView,可以使用Update命令打开一个记录进行编辑。它连接到代码隐藏中的RowEditing事件,并在单击时按预期工作。

但是,我正在攻击我的GridView来支持插入。这涉及在将集合分配给数据源然后打开第一行进行编辑之前,将空白实体添加到实体集合的开头。它看起来像这样:

MyDataGrid.DataSource = New MyEntity() {New MyEntity()}.Union(MyDbEntities)
MyDataGrid.EditIndex = 0
MyDataGrid.DataBind()

它可以工作并打开一个空白行,可以添加一个全新的记录。但是,它不会触发RowEditing事件。我需要触发此事件,因为在将特定控件传递到客户端之前会执行一些特殊代码来准备它们。我知道我可以创建一个接受GridViewRow对象作为参数的辅助方法,但我真的想在特定行上调用网格的Update命令,以便一切都自然流动。

1 个答案:

答案 0 :(得分:0)

您是在对GridView进行子类化,还是将其包装在许多额外的代码中?

如果您是子类,则应该可以访问OnRowEditing受保护的方法。如果你调用它,它将触发事件(假设事件处理程序附加到它。)

我建议进行子类化,实际上 - 它会产生更便携和可重用的东西,并且你将能够访问许多你无法实现的方法。