问题描述
新手一个~最近在做级联遇到点问题!调试运行的时候打开页面如下:这时候1,2,3三个下拉列表数据正确,逻辑是对的。但是当我改变1的内容后,2会变并且正确,但是3就不变了,如下图这时候我再改变2的时候,3会变并且正确。。。唯独只改变1的时候3不变。。。后台代码:protectedvoidPage_Load(objectsender,EventArgse){//判断是否第一次进入页面,如果是,则绑定数据库;如果不是,则无需绑定。if(!this.IsPostBack){//绑定河流SqlConnectioncon=newSqlConnection("Server=.;Uid=sa;Pwd=123456;Database=szpg_new;MultipleActiveResultSets=true");con.Open();stringcmdText="select*fromRiver";SqlCommandcmd=newSqlCommand(cmdText,con);SqlDataReadersdr=cmd.ExecuteReader();this.DropDownList1.DataSource=sdr;this.DropDownList1.DataTextField="RiverName";//文本内容this.DropDownList1.DataValueField="RiverCode";//数据源字段this.DropDownList1.DataBind();//sdr.Close();//绑定区段stringcmdZoneText="select*fromZonewhereRiverCode="+this.DropDownList1.SelectedValue;SqlCommandcmdZone=newSqlCommand(cmdZoneText,con);sdr=cmdZone.ExecuteReader();this.DropDownList2.DataSource=sdr;this.DropDownList2.DataTextField="ZoneName";//文本内容this.DropDownList2.DataValueField="ZoneCode";//数据源字段this.DropDownList2.DataBind();//绑定断面stringcmdSectionText="select*fromSection1whereZoneCode="+this.DropDownList2.SelectedValue;SqlCommandcmdSection=newSqlCommand(cmdSectionText,con);sdr=cmdSection.ExecuteReader();this.DropDownList3.DataSource=sdr;this.DropDownList3.DataTextField="SectionName";//文本内容this.DropDownList3.DataValueField="SectionCode";//数据源字段this.DropDownList3.DataBind();//关闭连接con.Close();}}protectedvoidDropDownList1_SelectedIndexChanged(objectsender,EventArgse){//河流的IDstringRiverCode=this.DropDownList1.SelectedValue;SqlConnectioncon=newSqlConnection("Server=.;Uid=sa;Pwd=123456;Database=szpg_new");con.Open();SqlCommandcmd=newSqlCommand("select*fromZonewhereRiverCode="+RiverCode,con);SqlDataReadersdr=cmd.ExecuteReader();//绑定this.DropDownList2.DataSource=sdr;this.DropDownList2.DataTextField="ZoneName";this.DropDownList2.DataValueField="ZoneCode";this.DropDownList2.DataBind();//sdr.Close();//con.Close();}protectedvoidDropDownList2_SelectedIndexChanged(objectsender,EventArgse){stringZoneCode=this.DropDownList2.SelectedValue;SqlConnectioncon=newSqlConnection("Server=.;Uid=sa;Pwd=123456;Database=szpg_new");con.Open();SqlCommandcmd=newSqlCommand("select*fromSection1whereZoneCode="+ZoneCode,con);SqlDataReadersdr=cmd.ExecuteReader();//绑定this.DropDownList3.DataSource=sdr;this.DropDownList3.DataTextField="SectionName";this.DropDownList3.DataValueField="SectionCode";this.DropDownList3.DataBind();}
解决方案
解决方案二:
refer:
解决方案三:
代码逻辑没写好,你变1的时候,2与3都要清空下
解决方案四:
1触发2变的时候没有触发3变
解决方案五:
你在1和2的选项改变的的事件里面打上断点调试一下。另外你的SqlConnection这样写比较好:Using(SqlConnectioncon=newSqlConnection("Server=.;Uid=sa;Pwd=123456;Database=szpg_new")){}
解决方案六:
参考:
解决方案七:
这种一般都是逻辑问题。
解决方案八:
昨晚后来又仔细检查了一下确实是逻辑问题1的事件里面只写了2变没写3变把1里面的事件写全就好了
解决方案九:
做个联动还要服务端亲力亲为。。不错。有前途。。
解决方案十:
没有关联3的所以3不变,都被上面的回答结束了