第一次做一些javascript。我正在玩 sessiontimeout,当我在 .aspx 页面中有代码时,它运行良好。下一步是将代码放入 .js 页面。所以这是我目前的阵容。
脚本.aspx.js
var iddleTimeoutWarning = null;
var iddleTimeout = null;
function pageLoad()
{
if (iddleTimeoutWarning != null)
clearTimeout(iddleTimeoutWarning);
if (iddleTimeout != null)
clearTimeout(iddleTimeout);
var millisecTimeOutWarning = <%= int.Parse(System.Configuration.ConfigurationManager.AppSettings["SessionTimeoutWarning"]) * 60 * 1000 %>;
var millisecTimeOut = <%= int.Parse(System.Configuration.ConfigurationManager.AppSettings["SessionTimeout"]) * 60 * 1000 %>;
iddleTimeoutWarning = setTimeout("DisplayIddleWarning()", millisecTimeOutWarning);
iddleTimeout = setTimeout("TimeoutPage()", millisecTimeOut);
}
function DisplayIddleWarning()
{
document.getElementById("LblWarning").innerHTML = "Warning Message";
}
function TimeoutPage()
{
__doPostBack('FiresAutoIdle','');
}
ASPX 页面(很确定错误在这里,因为 .js 页面中的代码有效)
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="Scripts/Script.aspx.js"/>
</Scripts>
</asp:ScriptManager>
我在 web.config 中也有一些代码行来设置键 SessionTimeout 和 SessionTimeoutWarning。
那么,关于故障在哪里的任何想法?事情过去运行,现在他们不会。
编辑
- 我正在使用脚本管理器来快速处理必要的 ASP.NET AJAX 组件以启用部分回发。我需要__doPostBack。
- 我发现如果一个js函数被命名为pageLoad(),该函数将在页面加载或部分回发时激活。正是我需要的。
因此,asp.nex 页面没有从 .js 加载 pageLoad() 函数。