【发布时间】:2025-12-21 12:50:16
【问题描述】:
我的 asp.net 页面出现问题,即使用户间歇性地输入数据也会显示会话超时警告。我们在母版页中设置了会话超时警告作为公司政策:
var sessionTimeoutWarning = 45;
sessionWarningTimer = setTimeout('SessionWarning()', sessionTimeoutWarning * 60 * 1000);
在 aspx 页面上,我有:
<script type="text/javascript">
window.onload = function () {
$('a').filter(function (index) { return $(this).text() === "Month to Date"; }).click();
};
function ValidateAndShowPopup() {
if (Page_ClientValidate('grpSubmit')) {
SubmitF();
}
}
我在更新面板中有按钮:
<asp:Button ID="btnSubmitReport" runat="server" Text="Submit" OnClick="btnSubmitReport_Click" ValidationGroup="grpSubmit" OnClientClick="ValidateAndShowPopup()" CssClass="btn" />
唯一的两个解决方案是在按钮单击时刷新页面(我不想这样做),或者在页面上重置 javascript 计时器。 请指导如何在按钮单击时重置 javascript 计时器变量。
【问题讨论】:
-
clearTimeout(sessionWarningTimer); -
asp:Button 不能同时处理 onClick 和 onClientClick 事件(优雅地)。如果您确定不想重新发布页面,那么您应该删除 onClick 事件。但是,我会删除 OnClientClick 并使用 registerStartUpscript 运行您的计时器重置功能
标签: javascript asp.net ajax session-timeout