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

求DropDownList联动方法,第一个DropDownList改变属性值时改变第二个DropDownList,然后第二个DropDownList
求DropDownList联动方法,第一个DropDownList改变属性值时改变第二个DropDownList,然后第二个DropDownList触发自己的selectindexchange事件。
我的代码如下
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

<asp:DropDownList id="ddl_action" runat="server" Width="100%" OnSelectedIndexChanged="ChangeAction" AutoPostBack="True"></asp:DropDownList>




现在的问题时第一个列表值改变,第二个列表的值也会变 但是第二个列表值改变的时候,不会触发他的OnSelectedIndexChanged事件。

------解决方案--------------------
联动的下拉框 就用ajax来做吧
------解决方案--------------------
AutoPostBack="true"
有这个吗
------解决方案--------------------

<asp:DropDownList id="ddl_action" runat="server" Width="100%" OnSelectedIndexChanged="ddl_action_SelectedIndexChanged" AutoPostBack="True"></asp:DropDownList>
 

 protected void ddl_action_SelectedIndexChanged(object sender, EventArgs e)
{
....这里是你的操作

}
------解决方案--------------------
加上AutoPostBack="true" 如二楼所说
------解决方案--------------------
你第一个触发时如果没调用
可以手动调用下