全国省,市,区三级联动无刷新下拉菜单(客户端回调法)

前台页面:CallbackResult.aspx

 

<% @ Page Language="C#" AutoEventWireup="true" CodeFile="CallbackResult.aspx.cs" Inherits="CallbackResult"  %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > 无标题页 </ title >
< script  language ="javascript"  type ="text/javascript" >

function callPostBack(input,context)
{
    
var arg=input;
    
if(context=="Select1")
    
{
        
<%=ClientScript.GetCallbackEventReference(this,"arg","province","context")%>;
    }

    
else if(context=="Select2")
    
{
        arg
+="C";
        
<%=ClientScript.GetCallbackEventReference(this,"arg","city","context")%>;
    }

    
else
    
{
        arg
+="A";
        
<%=ClientScript.GetCallbackEventReference(this,"arg","area","context")%>;
    }

}
     

function province(result,context)
{
    
var ItemArr=result.split(',');
    
    
for(var i=0;i<ItemArr.length;i++)
    
{
        
var Item = document.createElement("option");
        Item.text
=ItemArr[i].substring(ItemArr[i].indexOf('-')+1,ItemArr[i].length);
        Item.value
=ItemArr[i].substring(0,ItemArr[i].indexOf('-'));
        document.form1.Select1.options.add(Item);  
    }

}


function city(result,context)
{
    document.form1.Select2.options.length
=0;
    document.form1.Select3.options.length
=0;
    
var Item = document.createElement("option");
    Item.text
="请选择"
    Item.value
="";
    document.form1.Select3.options.add(Item);
    
    
var ItemArr=result.split(',');
    
    
for(var i=0;i<ItemArr.length;i++)
    
{
        Item 
= document.createElement("option");
        Item.text
=ItemArr[i].substring(ItemArr[i].indexOf('-')+1,ItemArr[i].length);
        Item.value
=ItemArr[i].substring(0,ItemArr[i].indexOf('-'));
        document.form1.Select2.options.add(Item);  
    }

}


function area(result,context)
{
    document.form1.Select3.options.length
=0;
    
var ItemArr=result.split(',');
    
    
for(var i=0;i<ItemArr.length;i++)
    
{
        
var Item = document.createElement("option");
        Item.text
=ItemArr[i].substring(ItemArr[i].indexOf('-')+1,ItemArr[i].length);
        Item.value
=ItemArr[i].substring(0,ItemArr[i].indexOf('-'));
        document.form1.Select3.options.add(Item);  
    }

}


function add()
{   
    document.form1.Results.value
="";
    document.form1.Results.value
+=document.form1.Select1.options[document.form1.Select1.options.selectedIndex].text+"->";
    document.form1.Results.value
+=document.form1.Select2.options[document.form1.Select2.options.selectedIndex].text+"->";
    document.form1.Results.value
+=document.form1.Select3.options[document.form1.Select3.options.selectedIndex].text;
}

</ script >

</ head >
< body  onload ="callPostBack('province','Select1')" >
    
< form  id ="form1"  runat ="server" >
        省份
< select  id ="Select1"  onchange ="callPostBack(this.options[this.options.selectedIndex].value,'Select2')"  runat ="server" >
            
< option  selected ="selected"  value ="" > 请选择 </ option >
        
</ select > &nbsp;
        城市
< select  id ="Select2"  onchange ="callPostBack(this.options[this.options.selectedIndex].value,'Select3')"  runat ="server" >
            
< option  selected ="selected"  value ="" > 请选择 </ option >
        
</ select > &nbsp;
        县区
< select  id ="Select3"  runat ="server" >
            
< option  selected ="selected"  value ="" > 请选择 </ option >
        
</ select > &nbsp;
        
< input  id ="Button1"  type ="button"  value ="确定"  onclick ="add()"   />< br  />< p ></ p >
        
< textarea  id ="Results"  cols ="50"  rows ="10" ></ textarea >
        
</ form >
</ body >
</ html >

 后台页面:CallbackResult.aspx.cs

 

using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;
using  System.Text;
using  System.Data.OleDb;
using  System.Data.SqlClient;

public   partial   class  CallbackResult : System.Web.UI.Page,ICallbackEventHandler
{
    
protected string info;
    
public string GetCallbackResult()
    
{
        
return info;
    }


    
public void RaiseCallbackEvent(string eventArgument) 
    
{
        
string strPath = Server.MapPath("App_Data/area.mdb");
        
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strPath;
        OleDbConnection conn 
= new OleDbConnection(strConn);
        conn.Open();
        
if (eventArgument == "province")
        
{
            
string sql = "select * from province order by id Asc";
            OleDbCommand cmd 
= new OleDbCommand(sql, conn);
            OleDbDataReader dr 
= cmd.ExecuteReader();
            
if (dr.Read())
            
{
                info 
= dr[1].ToString() + "-" + dr[2].ToString();

                
while (dr.Read())
                
{
                    info 
= info + "," + dr[1].ToString() + "-" + dr[2].ToString();
                }


            }

            cmd.Dispose();
            dr.Dispose();
        }

        
else if(eventArgument.IndexOf('C')>0)
        
{
            
string sql = "select * from city where father='"+ eventArgument.Substring(0,eventArgument.Length-1+ "' order by id Asc";
            OleDbCommand cmd 
= new OleDbCommand(sql, conn);
            OleDbDataReader dr 
= cmd.ExecuteReader();
            
if (dr.Read())
            
{
                info 
= dr[1].ToString() + "-" + dr[2].ToString();

                
while (dr.Read())
                
{
                    info 
= info + "," + dr[1].ToString() + "-" + dr[2].ToString();
                }


            }

            cmd.Dispose();
            dr.Dispose();
        }

        
else 
        
{
            
string sql = "select * from area where father='" + eventArgument.Substring(0, eventArgument.Length - 1+ "' order by id Asc";
            OleDbCommand cmd 
= new OleDbCommand(sql, conn);
            OleDbDataReader dr 
= cmd.ExecuteReader();
            
if (dr.Read())
            
{
                info 
= dr[1].ToString() + "-" + dr[2].ToString();

                
while (dr.Read())
                
{
                    info 
= info + "," + dr[1].ToString() + "-" + dr[2].ToString();
                }


            }

            cmd.Dispose();
            dr.Dispose();
        }


        conn.Close();
        conn.Dispose();
    }




  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值