2011-06-07 102 views
0

我有一个GridView,它有一个RowCommand事件,可以在点击时打开一个modalpopupextender。一个小问题是,如果用户打开和关闭模式弹出窗口,然后刷新页面,弹出窗口再次弹出 - 大概是因为刷新导致RowCommand事件的重新引发。GridView的RowCommand - 检测页面刷新而不是重新执行

我该如何检测并避免再次打开窗口?

编辑:我使用AJAX工具包,和模态弹出是客户方,但是从RowCommand事件

+0

为什么我得到这个权利:在服务器上生成弹出侧? – user492238 2011-06-07 08:12:40

+0

你想使用ajax吗?你使用jQuery吗? – Arian 2011-06-07 08:20:14

+0

对不起,我会让帖子更清楚 - modalpopup在页面标记中,但是我从关于弹出窗口的RowCommand事件 – Chris 2011-06-07 08:22:17

回答

0

称为如果重装再次触发rowcommand事件,它的出现,您正在使用GET参数?一般来说,您必须跟踪来自客户/客户的回复,并针对每个回应分别决定如何处理。实现此目的的一种方法:

在每个交付的页面中提供“页面交付计数器”。它在服务器端进行维护,每增加一个页面响应都会增加。 (现在,让多线程和可能的重启工作进程在这里 - 这个答案只是为了演示一般的方案,但考虑在每个用户基础上管理计数器,即将其存储在用户的会话中,如果任何)。

将计数器注册到服务器的集合中,并将其发送到客户端的隐藏变量中。如果回传进来,请阅读其计数器值并检查,如果它属于之前已经使用的响应。这将标记您描述的情况(用户点击重新加载)。

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

- C# validate repeat last PostBack when hit Refresh (F5)

- Detecting Refresh or Post back in ASP.NET