0

初めてJavaScriptを実行します。私はsessiontimeoutで遊んでいて、.aspxページ内にコードがある間はうまく機能していました。次の方法は、コードを.jsページに配置することでした。これが私の現在のラインナップです。

Script.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キーを設定するためのコード行がいくつかあります。

それで、グリッチはどこにあるのかについて何か考えはありますか?以前は実行されていましたが、現在は実行されません。

編集

  1. 部分的なポストバックを有効にするために必要なASP.NETAJAXコンポーネントをすばやく処理するために、スクリプトマネージャーを使用しています。__doPostBackが必要です。
  2. js関数の名前がpageLoad()である場合、ページが読み込まれたとき、または部分的なポストバック時に関数がアクティブになることがわかりました。ちょうど私が必要なもの。

そのため、asp.nexページは.jsからpageLoad()関数をロードしていません。

4

1 に答える 1

1

解決しました。

javascript内でasp変数を設定することはできません。したがって、ASPXページで変数を設定してから、javascriptにそれらを使用させる必要があります。

ASPX

<script type="text/javascript">
    var millisecTimeOutWarning = <%= int.Parse(System.Configuration.ConfigurationManager.AppSettings["SessionTimeoutWarning"]) * 60 * 1000 %>;
    var millisecTimeOut = <%= int.Parse(System.Configuration.ConfigurationManager.AppSettings["SessionTimeout"]) * 60 * 1000 %>; 
</script>

次に、それらを.jsファイルで使用します。

于 2012-08-08T13:28:07.020 に答える