ASP.net DropDownList 无刷新联动菜单

ASP.net DropDownList 无刷新联动菜单,牺牲N-1个ASPX来实现自动更新机制,避免刷新的闪动!!

以下代码绝对可以使用,也可以实现多级菜单。。。。

< script language = " javascript " >
   function load(state)
   
{
    var drp2 
= document.getElementById("DropDownList2");
    
for(var i=0;i<=drp2.options.length-1;i++)
    
{
     drp2.remove(i);
    }

    var oHttpReq 
= new ActiveXObject("MSXML2.XMLHTTP");    //发送请求
    var oDoc = new ActiveXObject("MSXML2.DOMDocument");    //响应结果
    var state=document.getElementById("DropDownList1").value;
    oHttpReq.open(
"post","webform2.aspx?state="+state, false);
    oHttpReq.send(
"");
    result 
= oHttpReq.responseText;
    oDoc.loadXML(result); 
    
   
// items = oDoc.selectNodes("//CITY/Table");
       items = oDoc.selectNodes("//address/Table");
     
for (var item = items.nextNode();item;item = items.nextNode())
     
{ 
      var city 
= item.selectSingleNode("//address").nodeTypedValue;
      var newOption 
= document.createElement("OPTION"); 
      newOption.text 
= city; 
      newOption.value 
= city; 
      drp2.options.add(newOption); 
      }
 
   }

  
</ script >

 

 

============================

webform1.aspx

private   void  Page_Load( object  sender, System.EventArgs e)
  
{
   
// 在此处放置用户代码以初始化页面
   if(!IsPostBack)
   
{
    SqlConnection con 
= new SqlConnection("packet size=4096;user id=sa;data source=SERVER;persist security info=False;initial catalog=pubs");
    SqlDataAdapter da 
= new SqlDataAdapter("select state from authors group by state",con);
    DataSet ds 
= new DataSet("State");
    da.Fill(ds);
    
this.DropDownList1.DataSource = ds.Tables[0];
    
this.DropDownList1.DataTextField = "state";
    
this.DropDownList1.DataValueField = "state"; 
    
this.DropDownList1.DataBind();  
    
this.DropDownList1.Attributes.Add("onchange","load()");  
    
//DropDownList1.
   }

  
  }


 

webform2.aspx

 
private   void  Page_Load( object  sender, System.EventArgs e)
  
{
   
// 在此处放置用户代码以初始化页面
   if(this.Request["state"]!=null)
   
{  
    
string state = this.Request["state"].ToString();  
    SqlConnection con 
= new SqlConnection("packet size=4096;user id=sa;data source=SERVER;persist security info=False;initial catalog=pubs");
    SqlDataAdapter da 
= new SqlDataAdapter("select address from authors where state = '"+state+"'",con);  
    DataSet ds 
= new DataSet("address");  
    da.Fill(ds);  
    XmlTextWriter writer 
= new XmlTextWriter(Response.OutputStream, Response.ContentEncoding);  
    writer.Formatting 
= Formatting.Indented;  
    writer.Indentation 
= 4;  
    writer.IndentChar 
= ' ';  
    ds.WriteXml(writer);  
    writer.Flush();  
    Response.End();  
    writer.Close();  
   }

  }



 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值