dropdownlist设置为自动回发出现的问题!!求帮忙

时间:2020-12-03 19:24:03
两个dropdownlist,第二个的下拉项根据第一个选择的来加载,两个都要设置为自动回发!!!那我第二个就无法选值了啊,       
            if (!IsPostBack)
            {
                第一个dropdownlist绑定
            }
            第二个dropdownlist根据第一个在if外面绑定(这样我选择下拉项是就没有意义了,怎么办??)

7 个解决方案

#1


对每一个dropdownlist的绑定应该写成一个方法,然后在!IsPostBack里面绑定第一个就好了,你自动回发的时候去触发第一个的TextChange事件再去绑定第二个就可以了

#2


制作一个方法。  在方法中进行绑定。    - - 两个绑定到一起就好了咯。。  

if(!ispostback){
ddl1.selectedindex==0
}
if(ddl1.selectedindex!=0){
ddl2绑定 = xxx(ddl1.selectedindex)
}

#3


你为啥要在page_load里面写第二个的绑定撒
你的第二个不是在第一个的选中事件里面绑定的吗?

#4


IsPostBack控制第一个
第二个根据第一个Change事件控制第二个的值

#5


第二个不用自动回传啊。。。。第二个就是根据第一个的值进行加载的,为什么要设置第二个的回传呢

#6


    <div>
        <div>
            省份:<asp:DropDownList ID="ddlProvinceList" runat="server" AutoPostBack="true"
                onselectedindexchanged="ddlProvinceList_SelectedIndexChanged">
            </asp:DropDownList>
        </div>
        <div>
            城市:<asp:DropDownList ID="ddlCityList" runat="server" >
            </asp:DropDownList>
        </div>
    </div>

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ProvinceDataBind();
        }
    }

    protected void ProvinceDataBind()
    {
        var list = new[] {
            new {ID="1",ProvinceName="湖南"},
            new {ID="2",ProvinceName="上海"},
            new {ID="3",ProvinceName="北京"}
        }.ToList();

        ddlProvinceList.DataSource = list;
        ddlProvinceList.DataTextField = "ProvinceName";
        ddlProvinceList.DataValueField = "ID";
        ddlProvinceList.DataBind();
    }
    protected void ddlProvinceList_SelectedIndexChanged(object sender, EventArgs e)
    {
        ddlCityList.Items.Clear();

        string provinceName = ddlProvinceList.SelectedItem.Text;


        switch (provinceName)
        {
            case "湖南":
                ddlCityList.Items.Add(new ListItem("长沙", "1"));
                break;
            case "上海":
                ddlCityList.Items.Add(new ListItem("上海市", "2"));
                break;
            default:
                break;
        }
    }

#7


万分感谢大家~~~~应该在第一个的change方法里面绑定第二个!!!结贴

#1


对每一个dropdownlist的绑定应该写成一个方法,然后在!IsPostBack里面绑定第一个就好了,你自动回发的时候去触发第一个的TextChange事件再去绑定第二个就可以了

#2


制作一个方法。  在方法中进行绑定。    - - 两个绑定到一起就好了咯。。  

if(!ispostback){
ddl1.selectedindex==0
}
if(ddl1.selectedindex!=0){
ddl2绑定 = xxx(ddl1.selectedindex)
}

#3


你为啥要在page_load里面写第二个的绑定撒
你的第二个不是在第一个的选中事件里面绑定的吗?

#4


IsPostBack控制第一个
第二个根据第一个Change事件控制第二个的值

#5


第二个不用自动回传啊。。。。第二个就是根据第一个的值进行加载的,为什么要设置第二个的回传呢

#6


    <div>
        <div>
            省份:<asp:DropDownList ID="ddlProvinceList" runat="server" AutoPostBack="true"
                onselectedindexchanged="ddlProvinceList_SelectedIndexChanged">
            </asp:DropDownList>
        </div>
        <div>
            城市:<asp:DropDownList ID="ddlCityList" runat="server" >
            </asp:DropDownList>
        </div>
    </div>

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ProvinceDataBind();
        }
    }

    protected void ProvinceDataBind()
    {
        var list = new[] {
            new {ID="1",ProvinceName="湖南"},
            new {ID="2",ProvinceName="上海"},
            new {ID="3",ProvinceName="北京"}
        }.ToList();

        ddlProvinceList.DataSource = list;
        ddlProvinceList.DataTextField = "ProvinceName";
        ddlProvinceList.DataValueField = "ID";
        ddlProvinceList.DataBind();
    }
    protected void ddlProvinceList_SelectedIndexChanged(object sender, EventArgs e)
    {
        ddlCityList.Items.Clear();

        string provinceName = ddlProvinceList.SelectedItem.Text;


        switch (provinceName)
        {
            case "湖南":
                ddlCityList.Items.Add(new ListItem("长沙", "1"));
                break;
            case "上海":
                ddlCityList.Items.Add(new ListItem("上海市", "2"));
                break;
            default:
                break;
        }
    }

#7


万分感谢大家~~~~应该在第一个的change方法里面绑定第二个!!!结贴