对asp.net实现DropDownList、ListBox无刷新三级联动2

时间:2010-03-17 16:56:55  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:库请见上一篇文章“asp.net实现DropDownList、ListBox无刷新三级联动(javascript)”      生成数据文本文件的代码    //将地区信息写入文本文件area.js    //添加二级地区    string strAreaData, strSQL;    strAreaData = "<script language = 'JavaScript' type='text/jav...
  正文:上篇文章说明了如何实现三级联动,但如果数据量较大,加载时会慢一些,因此经过测试,将需要读取的数据先写入一个文本文件中,然后在加载页面时直接调用此文本文件的内容,省去了读取数据库浪费的时间,数据量大时速度比先前快了许多。
  数据库请见上一篇文章“ASP/ target=_blank class=infotextkey>asp.net实现DropDownList、ListBox无刷新三级联动(JavaScript)”
  
  生成数据文本文件的代码
   //将地区信息写入文本文件area.js
   //添加二级地区
   string strAreaData, strSQL;
   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";
   IDataReader dr = DataClass.GetDataReader(strSQL);
   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";
   dr = DataClass.GetDataReader(strSQL);
   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>";
  
   StreamWriter str;
   File.Delete(Server.MapPath("~/js/area.js"));
  
   str = File.CreateText(Server.MapPath("~/js/area.js"));
   str.WriteLine(strAreaData);
   str.Close();
  
  aspx页面代码 <%--地区无刷新显示 --%>
  <% Response.WriteFile(Server.MapPath("~/js/area.js")); %>
   <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]);
   }
   }
  
   }
  

"对asp.net实现DropDownList、ListBox无刷新三级联动2"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/13266.html


关键字:

关于《对asp.net实现DropDownList、ListBox无刷新三级联动2》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td