GridView';s RowCommand-检测页面刷新而不重新执行

本文关键字:新执行 执行 刷新 RowCommand- 检测 GridView | 更新日期: 2023-09-27 17:58:45

我有一个GridView,它有一个RowCommand事件,可在单击时打开modalpopupextender。一个小问题是,如果用户打开和关闭modalpopup,然后刷新页面,弹出窗口会再次弹出——可能是因为刷新导致了RowCommand事件的重新刷新。

如何检测到这一点并避免再次打开窗口?

EDIT:我使用的是AJAX Toolkit,模式弹出窗口是客户端的,但它是从RowCommand事件调用的

GridView';s 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 中的刷新或发布