【发布时间】:2013-06-26 10:30:50
【问题描述】:
我们在 gridview 中处理以下两种情况:
1) 在“onRowCreated”事件中附加 onclick 处理程序,以便在单击网格的行时触发 selectIndexChanged 事件。为每一行运行代码。
e.Row.Attributes.Add("onClick", Page.ClientScript.GetPostBackEventReference(this, "Select$" + e.Row.RowIndex.ToString()));
2) 还将网格第一个单元格中图像按钮的命令名称设置为“删除”,以便在单击图像按钮时触发网格删除事件。
<ItemTemplate>
<ImageButton ID="imbDelete" CommandName="Delete" runat="server" SkinID="DeleteButton" ToolTip="Delete" CausesValidation="false" />
</ItemTemplate>
在升级到 .net 4.5 之前,所有这些场景都运行良好(也更新了 ajax 控制工具包),但是现在这两个操作发生冲突,当我单击删除按钮时删除操作挂起。单击删除按钮后,选择作为同一行的一部分被触发(开始请求/结束请求被调用为选择),然后(开始请求删除操作被调用,结束请求永远不会发生)。因此,操作挂起。
- 仅当解决方案部署在 IIS 上时才会发生这种情况。在 ASP.NET 开发服务器上运行良好。
- 仅适用于 IE,所有版本。在其他浏览器中它工作正常。
- 当我单击行时,会调用事件 selectedIndexChanged。但是,当单击位于 row 单元格中的删除按钮时,操作会挂起并且不会调用任何事件。
因为这个问题,我一直在发疯,感谢任何帮助。 更新:仍然卡住了,有什么想法吗?
高拉夫·塔雷
【问题讨论】:
-
这可能与框架在看到某些关键字时接管有关,例如使用“删除”。也许可以尝试使用您自己的单词变体,这样您就知道它的含义,但框架会忽略它?
-
@FullTimeSkeleton,我也尝试使用自己的关键字,然后使用 RowCommand 事件来处理它,但结果相同:( .
-
您是使用 OnRowCommand 来捕获删除还是 onClick?
-
当我们使用 'delete' 关键字作为命令名称并在网格中指定 OnRowDeleting 事件时,.net 会在单击按钮时自动查找此事件。如果名称是其他名称,您可以在 OnRowCommand 中检查它。我都试过了,都不管用。
-
不要以为您的 gridview 上有 AllowCustomPaging = true 是吗?我记得将其视为可能影响新转移的 4.5 项目的问题。很奇怪,但可能就是这样。
标签: asp.net ajax events gridview updatepanel