1

jQueryで動的に作成した複数のasp:buttonがあります。

それらのそれぞれについて、私は持っていOnClick="ibtn_Click"ます。

しかし、背後にあるコードでは、Page_Load..like...にそれぞれを手動で登録する必要がありますbutton.Click += new EventHandler(this.ibtn_Click);

このハンドラーを自動的に登録する方法はありますか?または、ajax jqueryに登録することは可能ですか?

ありがとう!

4

2 に答える 2

2

クライアントのブラウザにASP.NETWebコントロールを追加することはできません。ASP.NETは、これらの<asp:button>タグを次のような通常のHTMLに変換します。

<input type="submit" name="Button1" value="Ok" id="Button1" />

ユーザーがこれらの送信コントロールの1つをクリックすると、ブラウザーはPOST要求を送信します。これには、投稿されたデータ( ASP.NETnameのコレクションを介してアクセスできます)の一部としてボタンが含まれます。Form

if (this.IsPostBack && Request.Form["Button1"] != null) {
    // do something if the user clicked Button1
}

ASP.NETは、サーバーコントロールのクリックを属性で指定されたメソッドに自動的にバインドしOnClickます。完了後にメソッドを呼び出しますPage.Load(詳細については、「ASP.NETページのライフサイクルの概要」を参照してください)。

クライアントにボタンを追加する場合は、これをすべて自分で行うことができます。たとえば、動的に生成されたボタンを次のように「バインド」できますPage_PreRender

protected void Page_PreRender(object sender, EventArgs e) {
    if (this.IsPostBack && Request.Form["Button1"] != null) {
        // Call another method on the page
    }
}

最後に、この時代では、適切であれば、jQueryを介してページメソッドを呼び出すことを検討する必要がありますajax。そのテクニックの紹介については、この優れたEncosiaの記事を参照してください。

于 2010-11-29T21:54:10.813 に答える
0

コードビハインドを呼び出すための動的なasp.netボタンを生成する目的はありますか?HTMLの「送信」ボタン(type = submit)を生成し、javascriptからwebMethodsを呼び出すことができます。その後、webmethodsはc#コードビハインドにリダイレクトされます

于 2010-11-29T21:10:00.037 に答える