0

次のように、期限切れのセッションのポップアップ メッセージを実行するコードがあります。ただし、このコードは正しいカウント セッションを実行できません。プログラムを実行すると、設定した時間に間に合わなかったセッション期限切れメッセージがポップアップ表示されます。私のメッセージがこんなに早くポップアップする理由はわかっています。

Page.ClientScript.RegisterStartupScript(cstype, csname, strconfirm, false);

「タイムアウト」を追加しなかったため、思い通りに実行されませんが、追加するにはどうすればよいですか? 追加しようとすると、入力形式エラーになります。誰かがこの問題について私を助けることができますか?

string csname = "timeoutWarning";
Type cstype = this.GetType();
if (!Page.ClientScript.IsStartupScriptRegistered(cstype, csname))
{
    var timeout = HttpContext.Current.Session.Timeout * 60 * 1000;
    string strconfirm = "<script>if(!window.confirm('Your login session is about to expire. Do you want to extend it?')){window.location.href='../login.aspx'}</script>";
    Page.ClientScript.RegisterStartupScript(cstype, csname, strconfirm, false);
}
4

1 に答える 1

0

あなたはタイムアウトを設定する場所ではありません! Java スクリプト コードを抽出して関数 saySessionTimeOutHandler()を呼び出し、セッションの有効期限が切れるまで呼び出します。

 string strconfirm = "<script>" + 
                     "window.setTimeout('SessionTimeOutHandler()', 60000);" + 
"function SessionTimeOutHandler() { "+
"    if(!window.confirm('Your login session is about to expire. Do you want to extend it?'))"
+"   {window.location.href='../login.aspx'}</script>"; }";

ここで、strconfirm 初期化ステートメントを置き換えるだけです。それはあなたのために働くはずです!

于 2012-08-03T04:54:19.543 に答える