我已将控件dropdownlist
加载到RadGrid
的模板列中
在加载时,我为AutoPostBack='True'
设置了dropdownlist
,并创建了事件SelectedIndexChanged
。
DropDownList ddlConditions = new DropDownList();
ddlConditions.ID = "ddl" + name;
ddlConditions.AutoPostBack = true;
ddlConditions.SelectedIndexChanged += new EventHandler(ddlConditions_SelectedIndexChanged);
我的问题是,当我更改选定的dropdownlist
索引时,事件SelectedIndexChanged
未被触发。
任何人都可以帮我解决这个问题吗?
提前谢谢。
答案 0 :(得分:1)
通常由page life cycle problem
引起。当您的索引更改事件Dropdownlist触发时,控件不存在以将其绑定在回发上。
示例:
- > MyEvent发射。 - >下拉创建。 - >事件处理程序指定。 - >已触发索引更改事件。页面重新加载。没有找到下拉,无法开火。
所以你必须ensure that the drop-down is created before
.NET尝试处理这个事件。
有关此类问题和生命周期的更多信息,请参阅此answer。
答案 1 :(得分:1)
我建议您检查您创建 DropDownList 的位置。应在 OnInit 或至少在 OnLoad 上添加动态控件。在OnLoad完成执行后,ASP.NET开始处理控件的事件和值。
我的问题是当我更改所选的下拉列表索引时 事件SelectedIndexChanged未被触发。
答案:,因为您在处理完事件后创建了DropDownList。
答案 2 :(得分:0)
页面是否回发?如果是这样,您需要确保在每次回发时都在页面上重新创建控件。
如果它在通常的if(!IsPostBack)
块内,则将其放在外面 - 通常,在page_init
中创建控件也是谨慎的,但这可能取决于您的具体设置。