Ajax实现无刷新三联动下拉框例子


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 >
2.cs代码
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

}
3.AjaxMethod
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

}

}
4.web.config
< httpHandlers >
< add verb ="POST,GET" path ="ajax/*.ashx" type ="Ajax.PageHandlerFactory,Ajax" />
</ httpHandlers >
5.ajax.dll下载 /Files/singlepine/Ajax.rar
6.真实数据库下载 /Files/singlepine/area.rar
7.具体配置参见 http://singlepine.cnblogs.com/articles/253393.html
8.源代码下载 /Files/singlepine/AjaxTest.rar
9. XmlHttp实现无刷新三联动下拉框
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值