思想决定人生,态度改变一切

成功者找方法,失败者找借口! 做事先做人;安分做人,本分做事!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
      再谈 N 个 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();  
   }

  }


 原文出处:http:
//dev.csdn.net/article/81/81201.shtm
posted on 2006-03-31 13:50  投石问路  阅读(225)  评论(0编辑  收藏  举报