我正在使用asp.net和c#用于webForm。我正在动态生成dropDownList,但我无法为此控件执行事件。下面是一些代码:
DropDownList nuevoCmb = new DropDownList();
nuevoCmb.ID = "ddl" + num;
nuevoCmb.Items.Add("---Seleccione el Plazo---");
nuevoCmb.Items.Add("Corto Plazo");
nuevoCmb.SelectedIndex = 0;
nuevoCmb.AutoPostBack = true;
nuevoCmb.SelectedIndexChanged += new EventHandler(nuevoCmb_OnSelectedIndexChanged);
MainPanel.Controls.Add(nuevoCmb);
protected void nuevoCmb_OnSelectedIndexChanged(object sender, EventArgs e)
{
string temp = "";
}
答案 0 :(得分:0)
您需要为每个页面请求添加创建控件的代码,包括回发。如果控件导致回发并且未调用重新创建控件的代码,则不会触发事件处理程序。一旦在页面加载期间添加了具有相同ID的控件,.NET将最终调用您的事件处理程序。
答案 1 :(得分:0)
您应该在页面Init
事件中或之前添加动态添加的控件。如果您在页面Load
事件期间添加它也可以。 Load
事件发生后,您的自定义控件事件会冒泡并触发。因此,如果您要动态添加控件,则必须在每个帖子上添加它们,最迟在页面Load
事件结束之前加载。
答案 2 :(得分:0)
我在以下页面找到了答案:Creating Dynamic DropDownList Controls in ASP.Net
此示例功能齐全,但只有一个asp html页面,无法使用母版页。任何建议!