日期:2014-05-17  浏览次数:20426 次

在线等,两个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,相当于单链表结构了
第二个比较好 因为不仅可以做二级联动 三级联动 四级联动都可以
探讨

引用:

放在load_page事件里面在后台赋值

但是我要联动的二级下拉菜单在模板中