UpdatePanel が原因で問題が発生しました。コード ビハインドから Windows タイムアウトを割り当てています (スニペットはページの読み込み中です)。初めて時刻が正しく割り当てられます。しかし、ドロップダウンリストまたはページの読み込みを引き起こすその他のコントロールを変更すると、時間が割り当てられません。しかし、ページロードが発生するたびにセッション時間をリセットしたい.
<script language="javascript" type="text/javascript">
alert(<%=mintTimeout%>);
window.setTimeout("endSession();",<%=mintTimeout%>);
function endSession()
{
alert("Your session has expired. You will be redirected to the login page.");
}
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="true">
<asp:ListItem>a</asp:ListItem>
<asp:ListItem>b</asp:ListItem>
<asp:ListItem>c</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
私のコードビハインドは
public int mintTimeout = 0;
protected void Page_Load(object sender, EventArgs e)
{
Session.Timeout = 1;
mintTimeout = (Session.Timeout) * 60000;
}
protected void Button1_Click(object sender, EventArgs e)
{
}
これを乗り越えるのを手伝ってください。