本文实例讲述了jQuery+Asp.Net实现省市二级联动功能的方法。分享给大家供大家参考,具体如下:

页面html:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ddlAjax.aspx.cs" Inherits="ThreeAjaxDrop_ddlAjax" %>
<!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>DropDownList三级联动</title>
<style type="text/css">
*{margin:0; padding:0;}
body{font-size:12px; font-family:Arial @宋体;}
</style>
<script type="text/javascript" src="../js/jquery-1.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//加载完成后绑定省份数据
$.getJSON("Default.aspx", function(data) { //data的数据格式[{"text":"北京","value":"0001"},{"text":"江西","value":"0031"}]
//alert(data[0].text+"|"+data[0].value);
$.each(data, function(index, value) {
//alert(value.text + "|" + value.value);
$("#selProvince").append("<option value='" + value.value + "'>" + value.text + "</option>");
});
});
//省份的值改变,则要绑定出城市下拉框
$("#selProvince").change(function(){
document.getElementById("selArea").options.length=1; //先清掉县下拉框的的数据
document.getElementById("selCity").options.length=1; //先清掉城市下拉框的的数据
$.getJSON("HandlerDropDownAjax.ashx",{"type":"city","fid":$(this).val()},function(data){
$.each(data, function(index, value) {
$("#selCity").append("<option value='" + value.value + "'>" + value.text + "</option>");
});
});
});
//城市下拉框的值改变
$("#selCity").change(function(){
document.getElementById("selArea").options.length=1; //先清掉县下拉框的的数据
$.getJSON("HandlerDropDownAjax.ashx",{"type":"area","fid":$(this).val()},function(data){
$.each(data, function(index, value) {
$("#selArea").append("<option value='" + value.value + "'>" + value.text + "</option>");
});
});
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
三级联动:<select id="selProvince">
<option value="选择省份">==选择省份==</option>
</select> <select id="selCity"><option>==选择城市==</option></select>& amp;nbsp; <select id="selArea"><option>==选择县==</option></select>
</div>
</form>
</body>
</html>
asp.net部分:
(1)Default.aspx.cs
public partial class ThreeAjaxDrop_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string sql = "select * from province";
string strTemp = "\"text\":\"{0}\",\"value\":\"{1}\""; //构造格式字符串 {"text":"北京","value":"00001"}
StringBuilder sb = new StringBuilder();
OleDbDataReader reader = OleDBHelper.ExecuteReader(sql);
while (reader.Read())
{
string str1 = string.Format(strTemp, reader["province"].ToString(), reader["provinceID"].ToString());
sb.Append("{"+str1+"},");
}
reader.Close();
string json = sb.ToString();
Response.Write("["+json.Substring(0,json.Length-1)+"]");
}
}
(2)HandlerDropDownAjax.ashx
public class HandlerDropDownAjax : IHttpHandler {
public void ProcessRequest (HttpContext context) {
if (context.Request.QueryString["type"] != null && context.Request.QueryString["fid"] != null)
{
string type = context.Request.QueryString["type"].ToString(); //主要用于识别是查询city还是area表
string fid = context.Request.QueryString["fid"].ToString(); //城市或区域的父ID
string sql = "select * from " + type + " where father='" + fid + "'";
//构造数据的类型[{"text":"南昌","value":"0001"},{"text":"上饶","value":"0002"}]
//string strTemp = "{\"text\":\"{0}\",\"value\":\"{1}\"}";//这里犯了个错误:直接这样构造会出错,因为大括号里又有格式大括号,解析会出错
string strTemp = "\"text\":\"{0}\",\"value\":\"{1}\""; //构造格式字符串 {"text":"北京","value":"00001"}
StringBuilder sb = new StringBuilder();
OleDbDataReader reader = OleDBHelper.ExecuteReader(sql);
while (reader.Read())
{
string str1 = string.Format(strTemp, reader[2].ToString(), reader[1].ToString());
sb.Append("{" + str1 + "},"); //两边的大括号格式化后加上
}
reader.Close();
string json = sb.ToString();
context.Response.Write("[" + json.Substring(0, json.Length - 1) + "]"); //Substring的作用是去掉最后一个'逗号'
}
}
public bool IsReusable {
get {
return false;
}
}
}
更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net优化技巧总结》、《asp.net字符串操作技巧汇总》、《asp.net操作XML技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。
希望本文所述对大家asp.net程序设计有所帮助。
# jQuery
# Asp.Net
# 省市
# 二级
# 联动
# asp.net省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery
# ASP.NET MVC下拉框联动实例解析
# asp.net DropDownList实现二级联动效果
# ASP.NET中DropDownList和ListBox实现两级联动功能
# asp.net下使用AjaxPro实现二级联动代码
# asp.net DropDownList 三级联动下拉菜单实现代码
# asp.net两级联动(包含添加和修改)
# 适用与firefox ASP.NET无刷新二级联动下拉列表
# ASP.NET实现级联下拉框效果实例讲解
# ASP.NET Ajax级联DropDownList实现代码
# 下拉框
# 北京
# 操作技巧
# 绑定
# 上饶
# 相关内容
# 南昌
# 又有
# 感兴趣
# 给大家
# 江西
# 犯了
# 更多关于
# 主要用于
# 所述
# 程序设计
# 宋体
# 为大
# 则要
# 数据格式
相关文章:
如何在阿里云虚拟主机上快速搭建个人网站?
如何访问已购建站主机并解决登录问题?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
建站之星价格显示格式升级,你的预算足够吗?
利用JavaScript实现拖拽改变元素大小
建站之星在线客服如何快速接入解答?
制作门户网站的参考文献在哪,小说网站怎么建立?
如何在搬瓦工VPS快速搭建网站?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
如何通过多用户协作模板快速搭建高效企业网站?
如何通过虚拟主机快速搭建个人网站?
如何通过万网虚拟主机快速搭建网站?
如何在Tomcat中配置并部署网站项目?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
相册网站制作软件,图片上的网址怎么复制?
如何在Windows 2008云服务器安全搭建网站?
学校为何禁止电信移动建设网站?
,交易猫的商品怎么发布到网站上去?
建站之星收费标准详解:套餐费用及年费价格表一览
,想在网上投简历,哪几个网站比较好?
如何自定义建站之星网站的导航菜单样式?
c++ stringstream用法详解_c++字符串与数字转换利器
建站之星如何助力企业快速打造五合一网站?
建站主机空间推荐 高性价比配置与快速部署方案解析
如何在建站之星绑定自定义域名?
网站制作公司排行榜,抖音怎样做个人官方网站
Thinkphp 中 distinct 的用法解析
制作网站怎么制作,*游戏网站怎么搭建?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
如何彻底删除建站之星生成的Banner?
C++如何编写函数模板?(泛型编程入门)
建站主机解析:虚拟主机配置与服务器选择指南
打鱼网站制作软件,波克捕鱼官方号怎么注册?
制作网站的软件免费下载,免费制作app哪个平台好?
建站之星后台密码遗忘或太弱?如何重置与强化?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
如何通过西部数码建站助手快速创建专业网站?
长沙做网站要多少钱,长沙国安网络怎么样?
如何通过建站之星自助学习解决操作问题?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
如何制作算命网站,怎么注册算命网站?
已有域名如何快速搭建专属网站?
如何通过PHP快速构建高效问答网站功能?
电商网站制作价格怎么算,网上拍卖流程以及规则?
高端建站三要素:定制模板、企业官网与响应式设计优化
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
如何用狗爹虚拟主机快速搭建网站?
北京网站制作的公司有哪些,北京白云观官方网站?
如何用已有域名快速搭建网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。