添加事件以控制添加动态

时间:2013-02-07 19:58:50

标签: c# asp.net

我正在使用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 = "";
}

3 个答案:

答案 0 :(得分:0)

您需要为每个页面请求添加创建控件的代码,包括回发。如果控件导致回发并且未调用重新创建控件的代码,则不会触发事件处理程序。一旦在页面加载期间添加了具有相同ID的控件,.NET将最终调用您的事件处理程序。

答案 1 :(得分:0)

您应该在页面Init事件中或之前添加动态添加的控件。如果您在页面Load事件期间添加它也可以。 Load事件发生后,您的自定义控件事件会冒泡并触发。因此,如果您要动态添加控件,则必须在每个帖子上添加它们,最迟在页面Load事件结束之前加载。

答案 2 :(得分:0)

我在以下页面找到了答案:Creating Dynamic DropDownList Controls in ASP.Net

此示例功能齐全,但只有一个asp html页面,无法使用母版页。任何建议!