1.html代码
<
HTML
>
<
HEAD
>
<
title
>
Ajax实现无刷新三联动下拉框
</
title
>
<
meta
content
="MicrosoftVisualStudio.NET7.1"
name
="GENERATOR"
>
<
meta
content
="C#"
name
="CODE_LANGUAGE"
>
<
meta
content
="JavaScript"
name
="vs_defaultClientScript"
>
<
meta
content
="http://schemas.microsoft.com/intellisense/ie5"
name
="vs_targetSchema"
>
<
SCRIPT
language
="javascript"
>
//城市------------------------------
functioncityResult()
{
varcity=document.getElementById("DropDownList1");
AjaxMethod.GetCityList(city.value,get_city_Result_CallBack);
}
functionget_city_Result_CallBack(response)
{
if(response.value!=null)
{
//debugger;
document.all("DropDownList2").length=0;
vards=response.value;
if(ds!=null&&typeof(ds)=="object"&&ds.Tables!=null)
{
for(vari=0;i<ds.Tables[0].Rows.length;i++)
{
varname=ds.Tables[0].Rows[i].city;
varid=ds.Tables[0].Rows[i].cityID;
document.all("DropDownList2").options.add(newOption(name,id));
}
}
}
return
}
//市区----------------------------------------
functionareaResult()
{
vararea=document.getElementById("DropDownList2");
AjaxMethod.GetAreaList(area.value,get_area_Result_CallBack);
}
functionget_area_Result_CallBack(response)
{
if(response.value!=null)
{
document.all("DropDownList3").length=0;
vards=response.value;
if(ds!=null&&typeof(ds)=="object"&&ds.Tables!=null)
{
for(vari=0;i<ds.Tables[0].Rows.length;i++)
{
varname=ds.Tables[0].Rows[i].area;
varid=ds.Tables[0].Rows[i].areaID;
document.all("DropDownList3").options.add(newOption(name,id));
}
}
}
return
}
functiongetData()
{
varprovince=document.getElementById("DropDownList1");
varpindex=province.selectedIndex;
varpValue=province.options[pindex].value;
varpText=province.options[pindex].text;
varcity=document.getElementById("DropDownList2");
varcindex=city.selectedIndex;
varcValue=city.options[cindex].value;
varcText=city.options[cindex].text;
vararea=document.getElementById("DropDownList3");
varaindex=area.selectedIndex;
varaValue=area.options[aindex].value;
varaText=area.options[aindex].text;
vartxt=document.getElementById("TextBox1");
document.getElementById("<%=TextBox1.ClientID%>").innerText="省:"+pValue+"|"+pText+"市:"+cValue+"|"+cText+"区:"+aValue+"|"+aText;
}
</
SCRIPT
>
</
HEAD
>
<
body
ms_positioning
="GridLayout"
>
<
form
id
="Form1"
method
="post"
runat
="server"
>
<
TABLE
id
="Table1"
style
="Z-INDEX:101;LEFT:96px;POSITION:absolute;TOP:32px"
cellSpacing
="1"
cellPadding
="1"
width
="300"
border
="1"
bgColor
="#ccff66"
>
<
TR
>
<
TD
>
省市
</
TD
>
<
TD
><
asp:dropdownlist
id
="DropDownList1"
runat
="server"
></
asp:dropdownlist
></
TD
>
</
TR
>
<
TR
>
<
TD
>
城市
</
TD
>
<
TD
><
asp:dropdownlist
id
="DropDownList2"
runat
="server"
></
asp:dropdownlist
></
TD
>
</
TR
>
<
TR
>
<
TD
>
市区
</
TD
>
<
TD
><
asp:dropdownlist
id
="DropDownList3"
runat
="server"
></
asp:dropdownlist
></
TD
>
</
TR
>
</
TABLE
>
<
asp:TextBox
id
="TextBox1"
style
="Z-INDEX:102;LEFT:416px;POSITION:absolute;TOP:48px"
runat
="server"
Width
="424px"
></
asp:TextBox
><
INPUT
style
="Z-INDEX:103;LEFT:456px;WIDTH:56px;POSITION:absolute;TOP:96px;HEIGHT:24px"
type
="button"
value
="test"
onclick
="getData();"
>
</
form
>
</
body
>
</
HTML
>
public
class
WebForm1:System.Web.UI.Page
{
protectedSystem.Web.UI.WebControls.DropDownListDropDownList1;
protectedSystem.Web.UI.WebControls.DropDownListDropDownList2;
protectedSystem.Web.UI.WebControls.TextBoxTextBox1;
protectedSystem.Web.UI.WebControls.DropDownListDropDownList3;
privatevoidPage_Load(objectsender,System.EventArgse)
{
Ajax.Utility.RegisterTypeForAjax(typeof(AjaxMethod));
if(!Page.IsPostBack)
{
this.DropDownList1.DataSource=AjaxMethod.GetPovinceList();
this.DropDownList1.DataTextField="province";
this.DropDownList1.DataValueField="provinceID";
this.DropDownList1.DataBind();
this.DropDownList1.Attributes.Add("onclick","cityResult();");
this.DropDownList2.Attributes.Add("onclick","areaResult();");
}
}
#regionWebFormDesignergeneratedcode
overrideprotectedvoidOnInit(EventArgse)
{
//
//CODEGEN:ThiscallisrequiredbytheASP.NETWebFormDesigner.
//
InitializeComponent();
base.OnInit(e);
}
///<summary>
///RequiredmethodforDesignersupport-donotmodify
///thecontentsofthismethodwiththecodeeditor.
///</summary>
privatevoidInitializeComponent()
{
this.Load+=newSystem.EventHandler(this.Page_Load);
}
#endregion
}
using
System;
using
System.Data;
using
System.Data.SqlClient;
namespace
AjaxTest
{
///<summary>
///SummarydescriptionforAjaxMethod.
///</summary>
publicclassAjaxMethod
{
#regionGetPovinceList
publicstaticDataSetGetPovinceList()
{
stringsql="select*frompovince";
returnGetDataSet(sql);
}
#endregion
#regionGetCityList
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
publicDataSetGetCityList(intpovinceid)
{
stringsql="select*fromcitywherefather='"+povinceid+"'";
returnGetDataSet(sql);
}
#endregion
#regionGetAreaList
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
publicDataSetGetAreaList(intcityid)
{
stringsql="select*fromareawherefather='"+cityid+"'";
returnGetDataSet(sql);
}
#endregion
#regionGetDataSet
publicstaticDataSetGetDataSet(stringsql)
{
stringConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
SqlDataAdaptersda=newSqlDataAdapter(sql,ConnectionString);
DataSetds=newDataSet();
sda.Fill(ds);
returnds;
}
#endregion
}
}
<
httpHandlers
>
<
add
verb
="POST,GET"
path
="ajax/*.ashx"
type
="Ajax.PageHandlerFactory,Ajax"
/>
</
httpHandlers
>
6.真实数据库下载 /Files/singlepine/area.rar
7.具体配置参见 http://singlepine.cnblogs.com/articles/253393.html
8.源代码下载 /Files/singlepine/AjaxTest.rar
9. XmlHttp实现无刷新三联动下拉框
本文介绍了一种使用Ajax技术实现实时更新的三联动下拉菜单的方法。通过编写JavaScript和C#代码,当用户选择省份时,对应的市和区县会自动加载并显示在下拉菜单中,实现了页面的无刷新更新。

被折叠的 条评论
为什么被折叠?



