.net2003+ajax 无刷新区域下拉列表

1创建三张页面main.aspx、callservershen.aspx、callservershi.aspx

在main.aspx页面中放两个下拉列表

<SELECT id="drp1" style="WIDTH: 112px" οnchange="LoadShi();">
 <OPTION selected></OPTION>
</SELECT>

<SELECT id="drp2" style="WIDTH: 116px">
 <OPTION selected></OPTION>
</SELECT>

然后写javascript

 

< script >
var  xmlhttp = false ;
var  DrpInfo = "" ;
function  GetXmlHttp()
{
  
if(window.ActiveXObject)
   
{
     
try
       
{
     xmlhttp
=new ActiveXObject("Msxml2.XMLHTTP.3.0");
       }

     
catch(e)
       
{
           
try
        
{
          xmlhttp
=new ActiveXObject("Microsoft.XMLHTTP");
        }

      
catch(e)
           
{
        }

       }

   }

   
return xmlhttp;
}


// ************************** 窗 体 加 载 ----- 省  ***************************
function  LoadShen()
{
  GetXmlHttp();
  
var url="callservershen.aspx";
  xmlhttp.onreadystatechange
=ReadStateShen;
  xmlhttp.open(
"post",url,true);
  xmlhttp.send();
}


function  ReadStateShen()
{
  
var drp1=document.getElementById("drp1");
  
if(xmlhttp.readyState==1)
   
{
     DrpInfo
="数据加载中..";
     drp1.options[
0]=new Option(DrpInfo,DrpInfo);
   }

  
if(xmlhttp.reaydState==4)
   
{
     document.getElementById(
"drp1").length=0;
     drp1.options[
0]=new Option("请选择");
     
var msg=xmlhttp.responseText;
     msg
=msg.substring(0,msg.length-1);
     
var msgarray=new Array();
     msgarray
=msg.split(",");
     
for(var i=0;i<msgarray.length;i++)
      
{
        DrpInfo
=msgarray[i];
        drp1.options[drp1.length]
=new Option(DrpInfo,DrpInfo);
      }

   }

}




// ************************** 根 据 选 择 的 省 加 载 市 ***************************
function  LoadShi()
{
  GetXmlHttp();
  
var drp1=document.getElementById("drp1");
  
var drpInfo=drp1.options[drp1.selectedIndex].text;
  
var url="callservershi.aspx?shi="+escape(drpInfo);
  xmlhttp.onreadystatechange
=ReadStateShi;
  xmlhttp.open(
"post",url,true);
  xmlhttp.send();
}

function  ReadStateShi()
{
  
var drp2=document.getElementById("drp2");
  
if(xmlhttp.readyState==1)
   
{
     DrpInfo
="数据加载中..";
     drp2.options[
0]=new Option(DrpInfo);
   }

  
if(xmlhttp.readyState==4)
   
{
     
var msg=xmlhttp.responseText;
     msg
=msg.substring(0,msg.length-1);
     
var msgarray=new Array();
     msgarray
=msg.split(",");
     
for(var i=0;i<msgarray.length;i++)
      
{
        DrpInfo
=msgarray[i];
        drp2.options[drp2.length]
=new Option(DrpInfo,DrpInfo);
      }

   }

}

</ script >

 2在callservershen.aspx页面的page_load写如下代码    (注:查出数据中所有省名)

 

SqlConnection conn = new  SqlConnection( " server=.;database=test;uid=aa;pwd=aa " );
private   void  Page_Load( object  sender, System.EventArgs e)
{
    
if(!this.IsPostBack)
    
{
        
this.Bind();
    }

}


private   void  Bind()
{
    
try
    
{
        
string strSql="select distinct(shen) from city";
        DataSet ds
=new DataSet();
        SqlDataAdapter da
=new SqlDataAdapter(strSql,conn);
        da.Fill(ds,
"dd");
        
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
        
{
            Response.Write(ds.Tables[
0].Rows[i][0].ToString()+",");
        }

        Response.End();
                
    }

    
catch(Exception){}
}

 

3在callservershi.aspx页面的page_load写如下代码     (注:查出数据中所有市名)

 

SqlConnection conn = new  SqlConnection( " server=.;database=test;uid=aa;pwd=aa " );
private   void  Page_Load( object  sender, System.EventArgs e)
{
    
if(!this.IsPostBack)
    
{
        
this.Bind();
    }

}

private   void  Bind()
{
    
try
    
{
        
string str=Request.QueryString["shi"].ToString();
        
string strSql="select shi from city where shen='"+str+"'";
        DataSet ds
=new DataSet();
        SqlDataAdapter da
=new SqlDataAdapter(strSql,conn);
        da.Fill(ds,
"dd");
        
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
        
{
            Response.Write(ds.Tables[
0].Rows[i][0].ToString()+",");
        }

        Response.End();
                
    }

    
catch(Exception ){}
}
4在main.aspx页面中的<body>标签写οnlοad="LoadShen();"
<body οnlοad="LoadShen();">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值