【发布时间】:2018-05-04 11:59:59
【问题描述】:
我有几个下拉列表,根据用户选择,我必须在各个按钮中显示从 SQL 检索到的结果 [动态创建]。我有一个触发动态按钮创建的按钮单击事件。
代码:
void CreateButtons(string val)
{
Button btn = new Button();
btn.Text = val;
Panel1.Visible = true;
btn.ID = val.Replace(" ", "_");
btn.Click += new System.EventHandler(test);
Panel1.Controls.Add(btn);
}
protected void Button1_Click(object sender, EventArgs e)
{
int cont = 0;
string[] names = new string[40];
string del2 = "MY SQL STATEMENT"
SqlCommand del1cmd2 = new SqlCommand(del2, conn);
SqlDataAdapter da = new SqlDataAdapter(del1cmd2);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow row in dt.Rows)
{
names[cont] = row.Field<string>(0);
CreateButtons(names[cont]);
}
Response.Write(names[cont]);
}
问题:
我从 SQL 获取结果,将其存储在数据适配器上并循环 CreateButtons 函数以为返回的每一行创建单独的按钮。我能够获得所需的按钮创建结果,但是当我尝试为按钮设置操作时出现问题。
我需要为所有动态创建的按钮设置 onclick 事件处理程序,以便我能够为它们提供个人操作。
当我使用new System.EventHandler 语句单击当前代码时,页面刷新并且没有任何反应,即使我有以下模块。
public void test(object sender, EventArgs e)
{
Response.Write("Dynamic Button click event");
}
研究工作: 我一直在寻找解决方案很长一段时间,我能够找到在页面加载中创建按钮的工作代码,但没有找到在按钮单击事件上创建动态按钮的类似案例。
【问题讨论】:
标签: c# asp.net webforms eventhandler