2017-03-11 27 views
0

を動作しません。私は、彼らの細胞内のボタンを持つ動的なテーブルを作る、しかし、私はいくつかのボタンをクリックしたときに私のコンソールでこのエラーが表示さ:ASP.Netボタンとonclickのイベントが

Uncaught ReferenceError: bttn_Click is not defined 
    at HTMLUnknownElement.onclick (VM51 panel.aspx:1) 

これはどのように私ですHTMLとasp.netのボタンを作る:

StringBuilder htmlStr = new StringBuilder(); 
htmlStr.Append("<asp:button onclick='bttn_Click' class='btn btn-warning btn-xs' ID='Bttn_PDF'>PDF</asp:button>"); 
PlaceHolder1.Controls.Add(new Literal { Text = htmlStr.ToString() }); 

とC#

protected void bttn_Click(object sender, CommandEventArgs e) 
{ 
    Button btn = (Button)sender; 
    string btnid = btn.CommandArgument; 
    test.Text = btnid; 
} 
+0

動作するかどうかはわかりませんが、サーバーでレンダリングされたコントロールに必須のrunat = "server"がありません。 –

答えて

1

これが原因onclick Eでありますventは実際にJavascript固有のイベントが呼び出されることを期待していますが、現在は代わりにサーバー側のイベントを呼び出すようにしています。実際のASP.NET Buttonコントロールでこのようなイベントを定義する場合は、代わりにOnClientClickイベントを使用します。しかし、クライアント側のイベントではなく、サーバー側のイベントを対象にしたいので、これは本当に問題ではありません。

ビルドあなたのボタンサーバー側

あなたはおそらく、実際のButtonコントロールを作成し、あなたの方法を指してクリックイベントハンドラを定義し、ページにそのコントロールを追加されてやりたいですよ

// Build your button with its specific properties 
Button button = new Button(); 
button.ID = "Bttn_PDF"; 
button.CssClass = "btn btn-warning btn-xs"; 
// Wire up its click event 
button.Click += bttn_Click; 
// Add it to the form 
PlaceHolder1.Controls.Add(button); 
+0

ありがとう、それは私のために働いた。 –

関連する問題