2011-08-12 11 views
0

準備ができたらjavascriptから呼び出す予定のコードビーンファイルに公開文字列があります。しかし、実際に特定のイベントに結びついているわけではないので、ページが読み込まれるたびに起動します。私は(IsPostBack)しかし私が(他の多くの理由のために)使用しているコントロールは、入力タイプ=ボタンなので、ページが実際にコードが決して発射されないことを意味するポストバックを起こさないようにするために、私はそれを言うまで、それが実行されないよう後ろに私のコードでC#コードが毎回実行されないようにするページ読み込み

public string dontExecuteYet() 
{ 
    Do some server side stuff 
    Then redirect on delay 
    return string 
    } 

は、どのように私はのようなものがありますか?

+1

ボタンがポストバックされない場合は、どのようにSERを教えしようとしていますコードを実行する必要があるときは? – David

+0

from javascript。 – jmease

答えて

0

このようにページメソッドとAJAXでこれを行うことができます。

http://www.geekzilla.co.uk/View7B75C93E-C8C9-4576-972B-2C3138DFC671.htm

このコードでは、JavaScriptの

....

....

は、実際には、入力ボタンのポストバックを強制することができて、それを呼び出したときにのみ実行されますonclick = "javascript:__ doPostBack( 'eventargument'、 'eventvalue');"を追加すると、 (あなたがそのコントロールを持っている場合)

0

をあなたがコードにアクセスする必要がある場合は、最終的には(初期のPage_Loadの後と仮定した場合)、することができませんあなたは次のようなことをします:

if (!Page.IsPostBack) 
{ 
    this.MyPublicString = "Hello World!"; 
} 

そして、あなたのJavaScriptで:

var publicString = "<%= this.MyPublicString %>"; 
+0

問題はページが決してデザインによってポストバックしないことです。ボタンをクリックすると、私はローカルストレージに保存しているアイテムのリストを返すWebサービスを消費しています。ボタンクリック時にページをポストバックできるようにするたびに、Webサービスは常にnullを返します。私がページをポストバックしなくなったら、すぐにすべてが動作します。 – jmease

0

私はあなたがこの中でAJAXを使用することができます同意するが、あなたがそうのように、単にクエリ文字列を使用して、非同期であることをこれを必要としない場合:

if(Request.QueryString["execute"] == "yes") 
{ 
    dontExecuteYet(); 
} 

とJavaScriptで、あなただけのボタンが押されたときに起動するように、このコードのために必要があります。

window.location = "yoursite.com?execute=yes"; 
関連する問題