当执行 C# 中的页面加载事件时,是否有一种方法可以检测它是从用户在浏览器上点击刷新(或 F5)还是从单击的服务器控件调用的? 我想告诉最后一个事件是页面刷新(而不是服务器控件,例如单击的按钮)。这两个事件都会引发页面重新加载,但我无法判断它是否来自浏览器刷新。
我通过使用 jquery 来检测页面正文上的元素何时被单击来解决此问题。它在代码中调用函数OnSubmit(使用AJAX),该函数将C#变量"pagereresh"设置为false。在页面顶部声明变量时,该变量设置为 true。 在Pageload中,我检查此变量,如果它是假的,我知道导致页面加载的事件是页面上的按钮单击。如果这是真的,我知道这是页面重新加载。在 C# Page_Unload中,我将这个变量设置回 true。 Jquery 代码如下:
$(document).click(function (e) {
// Check for left button
if (e.button == 0) {
$.ajax({
type: "POST",
url: "Default.aspx/OnSubmit",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
},
failure: function (response) {
}
});
}
});