我有一个GridView,它有一个RowCommand事件,可以在点击时打开一个modalpopupextender。一个小问题是,如果用户打开和关闭模式弹出窗口,然后刷新页面,弹出窗口再次弹出 - 大概是因为刷新导致RowCommand事件的重新引发。GridView的RowCommand - 检测页面刷新而不是重新执行
我该如何检测并避免再次打开窗口?
编辑:我使用AJAX工具包,和模态弹出是客户方,但是从RowCommand事件
我有一个GridView,它有一个RowCommand事件,可以在点击时打开一个modalpopupextender。一个小问题是,如果用户打开和关闭模式弹出窗口,然后刷新页面,弹出窗口再次弹出 - 大概是因为刷新导致RowCommand事件的重新引发。GridView的RowCommand - 检测页面刷新而不是重新执行
我该如何检测并避免再次打开窗口?
编辑:我使用AJAX工具包,和模态弹出是客户方,但是从RowCommand事件
称为如果重装再次触发rowcommand事件,它的出现,您正在使用GET参数?一般来说,您必须跟踪来自客户/客户的回复,并针对每个回应分别决定如何处理。实现此目的的一种方法:
在每个交付的页面中提供“页面交付计数器”。它在服务器端进行维护,每增加一个页面响应都会增加。 (现在,让多线程和可能的重启工作进程在这里 - 这个答案只是为了演示一般的方案,但考虑在每个用户基础上管理计数器,即将其存储在用户的会话中,如果任何)。
将计数器注册到服务器的集合中,并将其发送到客户端的隐藏变量中。如果回传进来,请阅读其计数器值并检查,如果它属于之前已经使用的响应。这将标记您描述的情况(用户点击重新加载)。
你的问题在刷新或(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
为什么我得到这个权利:在服务器上生成弹出侧? – user492238 2011-06-07 08:12:40
你想使用ajax吗?你使用jQuery吗? – Arian 2011-06-07 08:20:14
对不起,我会让帖子更清楚 - modalpopup在页面标记中,但是我从关于弹出窗口的RowCommand事件 – Chris 2011-06-07 08:22:17