当前位置: 首页 > news >正文

jquery 绑定省份和城市

前台代码:

<asp:DropDownList runat="server" ID="ddlProvince">
</asp:DropDownList>
<asp:DropDownList runat="server" ID="ddlCity">
</asp:DropDownList>


后台绑定省份

复制代码
protected void Page_Load(object sender, EventArgs e)
{
BindDDL();
ddlProvince.Attributes.Add("onchange", "getCitys(this)");
}
public void BindDDL()
{
//绑定省份、直辖市和特别行政区
ddlProvince.Items.Clear();
DataSet dsProvince = Province.GetAllCES();
ddlProvince.DataSource = dsProvince;
ddlProvince.DataTextField = "ProvinceName";
ddlProvince.DataValueField = "ProvinceID";
ddlProvince.DataBind();
ddlProvince.Items.Add(new ListItem("其他", "0"));
}
复制代码

js事件处理getCitys(),为了提高性能,下面不该创建一个个的option对象然后一个个的添加到ddlcity里面,应该放到一个字符串里面然后一起放到optionddlcity里面,这里就不改了。

复制代码
function getCitys(ddlProvince) {
$.ajax({
url: "SettingsHandler.ashx",
data: { type: "getCitys", ProvinceID: $(ddlProvince).find("option:selected").val() },
type: "get",
cache: false,
dataType: "json",
error: function() {
alert("occur error");
},
success: function(data) {
$('#ddlCity').empty();
var option0 = $("<option></option>");
option0.text("不限");
option0.val("0");
$('#ddlCity').append(option0);
if ($(ddlProvince).find("option:selected").val() != "0") {
var objCitys = eval(data);
$.each(objCitys.citys, function(i, city) {
var option = $("<option></option>");
option.text(city.CityName);
option.val(city.CityID);
$('#ddlCity').append(option);
});
}
}
});
}
复制代码

SettingHandler.ashx文件

复制代码
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
string strjson = "{\"JDataList\":[]}";
string strType = context.Request.QueryString["type"].ToString();
if (strType == "getCitys")//根据省份ID获取对应的城市
{
string strProvinceID = context.Request.Form["ProvinceID"].ToString();
DataSet dsCitys = Province.GetCitysByProvinceID(ValidateHelper.GetInt(strProvinceID));
if (DataHelper.DataIsNotNull(dsCitys))
{
strjson = JsonHelper.DataTableToJSON(dsCitys.Tables[0], "citys");
}
}
    return strjson;
}
复制代码

JsonHelper.DataTableToJSON(DataTable dt,string dtName)方法:

复制代码
public static string DataTableToJSON(DataTable dt, string dtName)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);

using (JsonWriter jw = new JsonTextWriter(sw))
{
JsonSerializer ser = new JsonSerializer();
jw.WriteStartObject();
jw.WritePropertyName(dtName);
jw.WriteStartArray();
foreach (DataRow dr in dt.Rows)
{
jw.WriteStartObject();

foreach (DataColumn dc in dt.Columns)
{
jw.WritePropertyName(dc.ColumnName);
ser.Serialize(jw, dr[dc].ToString());
}

jw.WriteEndObject();
}
jw.WriteEndArray();
jw.WriteEndObject();

sw.Close();
jw.Close();

}

return sb.ToString();
}
复制代码

以上使用了JSON、JQUERY来实现省市的无刷新联动。

转载于:https://www.cnblogs.com/a757956132/p/3906544.html

相关文章:

  • 《高性能mysql》到手
  • hdu--1811--并查集拓扑排序好题
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • Python学习小组微信群公告页面
  • 栈的表示和实现
  • 抓取代理IP
  • Jquery Ajax时 error处理 之 parsererror
  • 0816
  • 面试逻辑题
  • 10个网页设计师必备的CSS技巧(转)
  • 使用py2exe发布windows平台Python
  • 线程安全的队列
  • 用string存取二进制数据
  • struct{0}二
  • fastText、TextCNN、TextRNN……这里有一套NLP文本分类深度学习方法库供你选择
  • Google 是如何开发 Web 框架的
  • [笔记] php常见简单功能及函数
  • CAP 一致性协议及应用解析
  • Cumulo 的 ClojureScript 模块已经成型
  • ES6系统学习----从Apollo Client看解构赋值
  • Java 23种设计模式 之单例模式 7种实现方式
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • REST架构的思考
  • Theano - 导数
  • vue:响应原理
  • 爱情 北京女病人
  • 不上全站https的网站你们就等着被恶心死吧
  • 对超线程几个不同角度的解释
  • 工程优化暨babel升级小记
  • 关于字符编码你应该知道的事情
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 前端存储 - localStorage
  • 算法-图和图算法
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (阿里云万网)-域名注册购买实名流程
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (数据结构)顺序表的定义
  • (一)80c52学习之旅-起始篇
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)winform之ListView
  • (转)平衡树
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .net程序集学习心得
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .net中我喜欢的两种验证码
  • @Autowired和@Resource装配
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @Repository 注解
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [20170705]lsnrctl status LISTENER_SCAN1