2012-02-03 5 views
0

保存せずにページを残してOKであれば、私は、ユーザーに確認するためのコードのこの部分を持っている:dropDownListsを持っていると私はAutoPostBackのは、に設定されている必要がありますページに問題がありますのAutoPostBack

<script language="JavaScript"> 

window.onbeforeunload = !isPostBack && confirmExit; 

function isPostBack() { 
    return <%= Page.IsPostBack ? "true":"false" %> 
} 

function confirmExit() { 
    return "Some lame question for user. :)";  
} 
</script> 

本当。 AutoPostBack = trueを指定すると、毎回迷惑なポップアップが発生します。 私はpostBack(Googleに感謝します)をチェックする方法を理解しましたが、今は固まっています。

間違えてはいけません。私はJavaスクリプトに関しては分かりません。私は何か新しいことを学ぶことを試みている貧しいデスクトッププログラマーです。

+1

ない問題はここにあるまさに確かに、あなたは迷惑なポップアップを何を意味するのですか? 'return confirm( 'Question?');' – greg84

+0

彼は以前に投稿されたフォームの再投稿に関する警告を意味します。 –

+0

ページが "PostBack:ed"であるかどうかだけを確認することはできません。ポストバックが発生するとIsPostBackはtrueになりますが、ユーザーは別のページのページを残すことができます。ページがアンロードされている理由を確認する必要があります。つまり、ユーザーがポストバック(ポストバックを引き起こすコントロールのjavascript onclickイベントハンドラ)を引き起こしたときに、クライアントコードを使用してクライアントサイド変数を設定します。 – PHeiberg

答えて

1

window.onbeforeunloadは、bool値ではなく関数であると予想されます。 (内から、あなたはに投稿された同じページにリダイレクト再掲載の警告を回避するための別の方法は、ポストリダイレクト-getのパターンとなり、ところで

if(<%= Page.IsPostBack ? "true":"false" %>) 
{ 
    window.onbeforeunload = function() 
    { 
     return "Some lame question for user. :)"; 
    }; 
} 

:あなたはこの、または同様のことを意図している場合がありますサーバー上のイベントハンドラ)。

1

コールバックであるため、onbeforeunloadは関数を格納し、ブール値ではありません。あなたが何か行うことができ

window.onbeforeunload = function(){ 
    if(!isPostBack && confirmExit) { 
     //leave page 
    } 
} 
関連する問題