尝试以编程方式将按钮添加到webform。 一些工作 - 其他人没有。 在下面的代码中,我在Page_Load中添加了btnY和btnX。 这些都有效 - 它们显示在页面上并触发事件 和事件处理程序中的代码工作.... 在页面加载中,我还运行了获取DataTable的bindData 并使用数据创建控件。 在示例中,我只创建Button。 这些按钮将正确显示在页面上,但单击时 他们只做一个回发.. 事件处理程序中的代码不起作用 - 它是否被调用? 所有按钮的事件处理程序都是相同的。 任何想法为什么或如何使它工作?
protected void Page_Load(object sender, EventArgs e)
{
PlaceHolder1.Controls.Add(btn("btnY", "Y"));
Pages P = new Pages();
bindData(P.DT);
PlaceHolder1.Controls.Add(btn("btnX", "X"));
}
Button btn(string id, string text)
{
Button btn1 = new Button();
btn1.ID = id;
btn1.Text = text;
btn1.Click += new System.EventHandler(this.btn_click);
return btn1;
}
protected void bindData(DataTable dt)
{
foreach (DataRow row in dt.Rows)
{
render(Convert.ToInt32(row["PageKey"]));
}
}
protected void render(int pageKey)
{
PlaceHolder1.Controls.Add(btn("btn_" + pageKey.ToString(), "Edit"));
}
protected void btn_click(object sender, EventArgs e)
{
Button btn = (Button)sender;
string id = btn.ID;
Pages P = new Pages();
bindData(P.DT);
lt.Text = "ID=" + id;
}
答案 0 :(得分:0)
没关系..想通了..上面的例子应该可行,我的实际代码有一个if(!Page.PostBack)导致问题