GridView';s RowCommand-检测页面刷新而不重新执行
本文关键字:新执行 执行 刷新 RowCommand- 检测 GridView | 更新日期: 2023-09-27 17:58:45
我有一个GridView,它有一个RowCommand事件,可在单击时打开modalpopupextender。一个小问题是,如果用户打开和关闭modalpopup,然后刷新页面,弹出窗口会再次弹出——可能是因为刷新导致了RowCommand事件的重新刷新。
如何检测到这一点并避免再次打开窗口?
EDIT:我使用的是AJAX Toolkit,模式弹出窗口是客户端的,但它是从RowCommand事件调用的
如果重新加载再次触发rowcommand事件,则会显示,您正在使用get parameters?一般来说,你必须跟踪来自/到客户端的响应,并单独决定如何处理每个响应
在每个交付的页面中提供一个"页面交付计数器"。它在服务器端进行维护,并随着每个页面响应而增加。(现在,把多线程和可能重新启动工作进程之类的事情放在一边吧-这个答案只是为了演示一般的方案。但考虑在每个用户的基础上管理计数器,即将其存储在用户的会话中(如果有的话)。)
在服务器上的集合中注册计数器,并将其作为隐藏变量发送到客户端。如果传入回发,请读取其计数器值并检查它是否属于以前已使用的响应。这将标记您描述的情况(用户点击重新加载)。
刷新或(F5)时出现问题。因此,您需要检测它是刷新还是正常发布。。
试试这个:
window.onbeforeunload = function (evt) {
var message = 'Are you sure you want to leave?';
if (typeof evt == 'undefined') {
evt = window.event;
}
if (evt) {
evt.returnValue = message;
}
return message;
}
这将捕获刷新,允许您显示有关此的消息。
其他对你有好处的链接:
-回发后F5的asp.net问题,因为它做了它应该做的
-当点击刷新(F5)时,C#验证重复上一次PostBack
-检测ASP.NET 中的刷新或发布