このページは、リンクボタンとそのメソッドで構成されています。
protected void LinkButton_Click(Object sender, EventArgs e)
{
TableRow tr = new TableRow();
TableCell tc = new TableCell();
Button b = new Button();
b.Text = "x";
b.CommandArgument = "someargument";
b.Click +=new EventHandler(this.b_Click);
tc.Controls.Add(b);
tc.Width = 30;
tr.Controls.Add(tc);
Table.Rows.Add(tr);
}
そして方法:
protected void b_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "UpdateCom", "alert('ok');return false;", true);
string id = (sender as Button).CommandArgument;
// other operations...
}
最初にリンクボタンをクリックしてテーブル内にボタンを作成し、次にボタンをクリックするとb_Clickメソッドが機能しません。代わりに、ページの更新が行われているだけで、JavaScriptアラートが表示されません。
問題は何ですか?
pageLoadメソッドのLinkButtonClick内で操作を行うと、すべてがOKで、ボタンが作成され、このボタンをクリックしたときにb_clickも機能することに注意してください。