在线等,两个DropDownList联动,二级DropDownList在模板中有自己的事件
在线等,两个DropDownList联动,二级DropDownList在模板中,有自己的事件,我想点击第一个DropDownList时候改变第二个DropDownList的值,然后第二个DropDownList触发自己的事件
这是第一个
C# code
<asp:dropdownlist id="ddl_AllAction" runat="server" AutoPostBack="True">
protected void ChangeAllAction(object sender, System.EventArgs e)
{
for(int i = 0; i < dg1.Items.Count; i++)
{
DropDownList ddl_action =(DropDownList)dg1.Items[i].FindControl("ddl_action");
ddl_action.SelectedIndexChanged += new System.EventHandler(this.ChangeAction);
ddl_action.AutoPostBack = true;
ddl_action.SelectedIndex = ddl_AllAction.SelectedIndex;
}
}
这个是模板列中的
C# code
<ItemTemplate>
<asp:DropDownList id="ddl_action" runat="server" Width="100%" OnSelectedIndexChanged="ChangeAction"
AutoPostBack="True"></asp:DropDownList>
</ItemTemplate>
ChangeAction是这个的绑定事件
问题是我现在虽然,第一个DropDownList的值改变后,第二个也会改,但是不会触发第二个DropDownList的selectindexchange事件
------解决方案--------------------看看小生的小文: GridView中多个DropDownList的联动问题
------解决方案--------------------OnSelectedIndexChanged
这个需要鼠标选择项的时候触发的吧
------解决方案--------------------或者自己打个断点调试一下。
------解决方案--------------------放在load_page事件里面在后台赋值
------解决方案--------------------水平有限 小弟目前也是有这样的问题 有两个解决方法
1:联动DropDownList做成用户控件
2:自己重新写一个DropDownList,继承DropDownList,然后给这个自己的DropDownList加一个DropDownList类型的属性就叫做LinkedDropDownList,相当于单链表结构了
第二个比较好 因为不仅可以做二级联动 三级联动 四级联动都可以