2012-01-31 10 views
0

__DoPostBackを使用してサーバーサイドメソッドを呼び出したいが、私のページに隠れたASPラングサーバーコントロールを必要としない。それをトリガーするコントロールの名前ではなく、その名前でサーバーサイドのメソッドを呼び出すことは可能ですか?隠しコントロールなしで__DoPostBackを使用してコードビハインドメソッドをターゲットにする方法

問題は、aspxページにonclick = "ExportButton_Click"というaspボタンがあり、ボタンをクリックすると、ExportButton_Clickコードビハインド(サーバー側)メソッドが呼び出されます。私の問題は、ボタンを動的に作成しようとしているため、aspボタンを取り除きたいのです。クリックすると、同じことが実行されます。今、私の動的に作成されたボタンは、ExportButton_Clickをトリガーするasp ButtonをターゲットとするdoPostBack javascript関数を呼び出しています。だから... aspボタンを持たずに、__doPostBackでExportButton_Click codebehindメソッドを呼び出すことは可能ですか?前もって感謝します。

答えて

2

イベントターゲットの引数を__DoPostBack('myEvent')メソッドに渡します。

if (Request.Form["__EVENTTARGET"] == "myEvent") 
{ 
    //call your button click function, and pass the button to it (can pass null as the EventArgs) 
    Button1_Click(Button1, null); 
} 
1

これらの2つの方法は、あなたのサーバー側の友達である:あなたのコードビハインドPage_Load()で次に

は、このようなどこかのコードを持って

this.Page.ClientScript.GetPostBackEventReference 
this.Page.ClientScript.GetPostBackClientHyperlink 
彼らはJavaScriptを生成するために使用することができ

あなたのサーバー側のイベントへのリンク。