【发布时间】:2010-09-21 09:21:08
【问题描述】:
我有一个显示社区列表的 ASP.NET GridView。
我希望用户(管理员)能够编辑社区名称。
现在,数据库相当复杂,因此,我不能简单地为 GridView 提供 UpdateCommand / SqlDataSource。
我手动绑定数据(在第一次加载时,以及在 PageIndexChanging 事件中)。
绑定/列出分页数据工作正常。
但是,我在尝试更新数据时遇到了麻烦。
用户单击“编辑”按钮,显示社区名称的文本框,我更改文本,单击“更新”,但未触发 RowUpdating 事件。
我基本上想获取已编辑的行,并使用 LINQ 执行自定义更新。
这对于 GridView 是不可能的吗?如果不是,我的替代方案是什么?带有链接按钮的中继器和可以换入/换出标签的隐藏文本框?
这是我的 GridView 标记:
<asp:GridView ID="NeighborhoodsGrid"
AllowPaging="true"
PageSize="10"
AutoGenerateColumns="false"
EnableViewState="false"
OnPageIndexChanging="NeighborhoodsGridPageIndexChanging"
OnRowDataBound="NeighborhoodsGridRowDataBound"
OnRowEditing="NeighborhoodsGridRowEditing"
OnRowCancelingEdit="NeighborhoodsGridRowCancellingEdit"
OnRowUpdating="NeighborhoodsGridRowUpdating"
AutoGenerateEditButton="true"
runat="server">
还有代码隐藏:
protected void NeighborhoodsGridRowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow updatedRow = NeighborhoodsGrid.Rows[e.RowIndex]; // not firing. =(
}
我还将 GridView 包装在 UpdatePanel 中,如果这有什么不同的话(不认为应该如此)。
有什么想法或替代建议吗?
【问题讨论】: