asp.net实现DropDownList、ListBox无刷新三级联动(javascrip
点击次数:34 次 发布日期:2008-11-26 09:53:10 作者:源代码网
|
源代码网推荐 此为DropDownList无刷新三级联动的另一种方法,使用javascript操作,因是在客户端操作,所以切换速度较快,但如果数据量大时,加载时会稍慢点,下一篇文章我会发布针对此方法的改进方案,供大家参考。此为DropDownList示例,ListBox只需略加修改。 源代码网推荐 源代码网推荐 数据库为国家统计局最新的行政区划,自己又加入了香港、台湾、澳门的行政区划,需要的朋友可直接下载使用。 源代码网推荐 数据库下载 源代码网推荐 /Files/netshuai/area.rar 源代码网推荐 源代码网推荐 aspx页面代码 源代码网推荐 源代码网推荐 <% =strAreaData %> 源代码网推荐 <script language = "JavaScript" type="text/javascript"> 源代码网推荐 源代码网推荐 function changearea1() 源代码网推荐 { 源代码网推荐 document.all("<% =Ddl_AreaTwo.ClientID %>").length = 0; 源代码网推荐 document.all("<% =Ddl_AreaTwo.ClientID %>").options[0] = new Option("选择城市","0"); 源代码网推荐 document.all("<% =Ddl_AreaThree.ClientID %>").length = 0; 源代码网推荐 document.all("<% =Ddl_AreaThree.ClientID %>").options[0] = new Option("选择城市","0"); 源代码网推荐 var oneid=document.all("<% =Ddl_AreaOne.ClientID %>").value; 源代码网推荐 var i; 源代码网推荐 for (i=0;i < onecount; i++) 源代码网推荐 { 源代码网推荐 if (subcat[i][1] == oneid) 源代码网推荐 { 源代码网推荐 document.all("<% =Ddl_AreaTwo.ClientID %>").options[document.all("<% =Ddl_AreaTwo.ClientID %>").length] = new Option(subcat[i][0], subcat[i][2]); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 function changearea2() 源代码网推荐 { 源代码网推荐 document.all("<% =Ddl_AreaThree.ClientID %>").length = 0; 源代码网推荐 document.all("<% =Ddl_AreaThree.ClientID %>").options[0] = new Option("选择城市","0"); 源代码网推荐 var twoid=document.all("<% =Ddl_AreaTwo.ClientID %>").value; 源代码网推荐 var oneid=document.all("<% =Ddl_AreaOne.ClientID %>").value; 源代码网推荐 var i; 源代码网推荐 for (i=0;i < onecount1; i++) 源代码网推荐 { 源代码网推荐 if (subcat1[i][2] == twoid) 源代码网推荐 { 源代码网推荐 if (subcat1[i][1] == oneid) 源代码网推荐 { 源代码网推荐 document.all("<% =Ddl_AreaThree.ClientID %>").options[document.all("<% =Ddl_AreaThree.ClientID %>").length] = new Option(subcat1[i][0], subcat1[i][3]); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 </script> 源代码网推荐 <asp:DropDownList ID="Ddl_AreaOne" runat="server" AppendDataBoundItems="True"> 源代码网推荐 <asp:ListItem Value="0">请选择</asp:ListItem> 源代码网推荐 </asp:DropDownList> 源代码网推荐 <asp:DropDownList ID="Ddl_AreaTwo" runat="server" > 源代码网推荐 <asp:ListItem Value="0">请选择</asp:ListItem> 源代码网推荐 </asp:DropDownList> 源代码网推荐 <asp:DropDownList ID="Ddl_AreaThree" runat="server" > 源代码网推荐 <asp:ListItem Value="0">请选择</asp:ListItem> 源代码网推荐 </asp:DropDownList> 源代码网推荐 cs页面代码 源代码网推荐 protected string strAreaData; 源代码网推荐 protected void Page_Load(object sender, EventArgs e) 源代码网推荐 { 源代码网推荐 Ddl_AreaOne.Attributes.Add("onchange", "changearea1()"); 源代码网推荐 Ddl_AreaTwo.Attributes.Add("onchange", "changearea2()"); 源代码网推荐 string strSQL; 源代码网推荐 strSQL = "select * from nts_area where oneid<>0 and twoid=0 and threeid=0 order by sort"; 源代码网推荐 Ddl_AreaOne.DataSource = DataClass.GetDataReader(strSQL); 源代码网推荐 Ddl_AreaOne.DataTextField = "areaname"; 源代码网推荐 Ddl_AreaOne.DataValueField = "oneid"; 源代码网推荐 Ddl_AreaOne.DataBind(); 源代码网推荐 strAreaData = "<script language = "JavaScript" type="text/javascript">var onecount;onecount=0;subcat = new Array();"; 源代码网推荐 strSQL = "select * from nts_area where oneid<>0 and twoid<>0 and threeid=0 order by sort"; 源代码网推荐 string ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="数据库路径""; 源代码网推荐 OleDbConnection cnn = new OleDbConnection(ConnectionString); 源代码网推荐 cnn.Open(); 源代码网推荐 OleDbCommand cmd=new OleDbCommand(sql, cnn); 源代码网推荐 OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 源代码网推荐 int i1 = 0; 源代码网推荐 while (dr.Read()) 源代码网推荐 { 源代码网推荐 strAreaData += "subcat[" + i1.ToString() + "] = new Array("" + dr["areaname"].ToString() + "","" + dr["oneid"].ToString() + "","" + dr["twoid"].ToString() + "");"; 源代码网推荐 i1++; 源代码网推荐 源代码网推荐 } 源代码网推荐 strAreaData += "onecount=" + i1.ToString() + ";"; 源代码网推荐 源代码网推荐 //添加三级地区 源代码网推荐 strAreaData += "var onecount1;onecount1=0;subcat1 = new Array();"; 源代码网推荐 源代码网推荐 strSQL = "select * from nts_area where oneid<>0 and twoid<>0 and threeid<>0 order by sort"; 源代码网推荐 cnn.Open(); 源代码网推荐 cmd.CommandText = strSQL; 源代码网推荐 cmd.Connection = cnn; 源代码网推荐 dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 源代码网推荐 int n1 = 0; 源代码网推荐 while (dr.Read()) 源代码网推荐 { 源代码网推荐 strAreaData += "subcat1[" + n1.ToString() + "] = new Array("" + dr["areaname"].ToString() + "","" + dr["oneid"].ToString() + "","" + dr["twoid"].ToString() + "","" + dr["threeid"].ToString() + "");"; n1++; 源代码网推荐 源代码网推荐 } 源代码网推荐 dr.Close(); 源代码网推荐 strAreaData += "onecount1=" + n1.ToString() + ";</script>"; 源代码网推荐 } 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
