在asp.net中,在指定位置动态生成了多个button,怎么样获取他所对应的ID
我的做法是:
在页面上 <asp:PlaceHolder runat="server" ID="Place" ></asp:PlaceHolder>
后台: for (int i = 0; i < 6; i++)
{
Button btn = new Button();
btn.Text = “按钮”+i;
btn.Click += new EventHandler(btn_Click);
btn.Width = 60;
Place.Controls.Add(btn);
}
void btn_Click(object sender, EventArgs e)
{ 触发相应的事件 }
当我点击动态生成的按钮时,只能得到最后一个的值,如果把上面这段代码放在!IsPostBack中,点击时就不显示按钮了,请问高手怎么解决!非常谢谢
------解决方案--------------------------------------------------------
你是不是有其它 操作了。我写了测试代码没有问题啊
PlaceHolder1
- C# code
override protected void OnInit(EventArgs e) { for (int i = 0; i < 6; i++) { Button btn = new Button(); btn.Text = "Button " + i; btn.Click += new EventHandler(btn_Click); btn.Width = 60; btn.ID = "testbutton" + i.ToString(); PlaceHolder1.Controls.Add(btn); } } void btn_Click(object sender, EventArgs e) { Button btn = sender as Button; if (btn != null) Label1.Text = "text: " + btn.Text +" id: " + btn.ID; else Label1.Text = "not button"; }