2010-11-29 22 views
1

jQueryで動的に作成した複数のasp:ボタンがあります。asp:buttonイベントハンドラを登録する

それぞれについては、OnClick="ibtn_Click"です。

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

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

ありがとうございます!

+3

jQueryでasp:buttonsを作成したということはどういう意味ですか?コードを投稿してください。このような –

+0

何か: $( '

') .ATTR( "ID"、nameTempTop) .appendTo(' divの[ID = '+ namePrevTop +']'); – phillyville

+0

@ジェフ:はい。私は正しく読んだかどうかを確認するために再度読まなければならなかった。 ;) –

答えて

2

クライアントのブラウザにASP.NET Webコントロールを追加することはできません。 ASP.NETは、通常のHTMLの中にこのような何か、それらの<asp:button>タグを変換します。ユーザーはこれらの提出のコントロールのいずれかをクリックすると

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

を、ブラウザがボタンのnameポストされたデータの一部として含まれるPOSTリクエストを送信します(あなたがASP.NETでFormコレクションを経由してアクセスできる):

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

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

ボタンをクライアントに追加する場合は、すべて自分で行うことができます。たとえば、あなたは、「バインド」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経由ページメソッドを呼び出すことを検討してください。その技法の紹介については、this excellent Encosia articleを参照してください。

+1

+1 jQueryのajax経由でページメソッドを呼び出します。 ASP.NETのWebフォーム抽象化と醜いポストバックから遠ざかるほど、より良いことです! – Mike

0

コードを呼び出すための動的asp.netボタンを生成する目的はありますか? html "Submit"ボタン(type = submit)を生成し、javascriptからwebMethodsを呼び出すことができます。 webmethodsがあなたにリダイレクトされています

関連する問題