我有一个GridView,它有一个RowCommand事件,可以在点击时打开一个modalpopupextender。一个小问题是,如果用户打开并关闭一个modalpopup,然后刷新页面,弹出窗口会再次弹出 - 大概是因为刷新导致了RowCommand事件的重新启动。
如何检测到这一点并避免再次打开窗口?
编辑:我正在使用AJAX工具包,模式弹出窗口是客户端,但是从RowCommand事件中调用答案 0 :(得分:0)
如果重新加载再次触发rowcommand事件,则显示您正在使用get参数?通常,您必须跟踪来自/向客户端的响应,并单独决定每个响应,如何处理它。一种方法来实现这一目标:
在每个交付的页面中提供“页面交付计数器”。它在服务器端维护,并针对每个页面响应增加。 (现在,让多线程和可能重新启动工作进程的东西放在这里 - 这个答案只是为了演示一般方案。但考虑在每个用户群上管理计数器,即将它存储在用户的会话中,如果任何。)
将计数器注册到服务器上的集合中,并将其隐藏变量发送给客户端。如果有回发,请读取其计数器值并检查它是否属于之前已使用过的响应。这将标记您描述的情况(用户点击重新加载)。
答案 1 :(得分:0)
你在刷新或(F5)中的问题。所以你需要检测它是刷新还是正常回发..
尝试this:
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;
}
这将捕获刷新,允许您显示有关此内容的消息。
其他适合您的链接:
- asp.net problem with F5 after postback, cuz it does what it should