当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  asp.net实现DropDownList、ListBox无刷新三级联动(javascrip

 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)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华