[转]jquery getJSON 数据联动(采用序列化和反序列化获取数据) .
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
GetByJquery("#area", 0);
$("#area").change(function () {
GetByJquery("#subarea", $("#area").val());
});
$("#btnGet").click(function () {
alert($("#area").val() + "--" + $("#area option:selected").text());
});
});
function GetByJquery(ddlId, id, selId) {
$.getJSON("SelectAjax.ashx", { action: "area", id: id, rnd: Math.random() }, function (data) {
$(ddlId).empty();
$("<option value=\"-1\">不限</option>").appendTo($(ddlId));
$.each(data, function (i, item) {
$("<option></option>")
.val(item.AreaID)
.attr("selected", item.AreaID == selId)
.text(item.AreaName)
.appendTo($(ddlId));
});
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<select id="area" name="area">
<option value="-1">不限</option>
</select>
<select id="subarea" name="subarea">
<option value="-1">不限</option>
</select>
<input id="btnGet" name="btnGet" type="button" value="Get" />
</div>
</form>
</body>
</html>
SelectAjax.ashx文件:
/// <summary>
/// SelectAjax 的摘要说明
/// </summary>
public class SelectAjax : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string action = context.Request.QueryString["action"];
if (("area").Equals(action))
{
string id = context.Request.QueryString["id"];
if (!string.IsNullOrEmpty(id))
context.Response.Write(GetArea(id));
else context.Response.Write("");
}
}
private string GetArea(string id)
{
List<Area> areaList = new List<Area>();
if (id == "0")
{
areaList.Add(new Area
{
AreaID = "01",
AreaName = "罗湖区",
PID = "0"
});
areaList.Add(new Area
{
AreaID = "02",
AreaName = "福田区",
PID = "0"
});
}
if (id == "01")
{
areaList.Add(new Area
{
AreaID = "0101",
AreaName = "莲塘",
PID = "01"
});
areaList.Add(new Area
{
AreaID = "0102",
AreaName = "黄贝岭",
PID = "01"
});
}
if (id == "02")
{
areaList.Add(new Area
{
AreaID = "0201",
AreaName = "八卦岭",
PID = "02"
});
areaList.Add(new Area
{
AreaID = "0202",
AreaName = "华强",
PID = "02"
});
}
return Serialize(areaList);
}
/// <summary>
/// Json序列化
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="t">泛型</param>
/// <returns>序列化</returns>
private string Serialize(object obj)
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Serialize(obj);
}
/// <summary>
/// Json反序列化
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="strJson">泛型</param>
/// <returns>反序列化</returns>
private T Deserialize<T>(string strJson)
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Deserialize<T>(strJson);
}
public class Area
{
public string AreaID { get; set; }
public string AreaName { get; set; }
public string PID { get; set; }
}
public bool IsReusable
{
get
{
return false;
}
}
}
[转]jquery getJSON 数据联动(采用序列化和反序列化获取数据) .的更多相关文章
- Jackson序列化和反序列化Json数据完整示例
Jackson序列化和反序列化Json数据 Web技术发展的今天,Json和XML已经成为了web数据的事实标准,然而这种格式化的数据手工解析又非常麻烦,软件工程界永远不缺少工具,每当有需求的时候就会 ...
- go-redis 基于beego正确使用序列化存储数据和反序列化获取数据
安装go-redis // 安装命令 go get github.com/gomodule/redigo/redis // 导入使用 import( "github.com/gomodule ...
- Activity与Fragment数据传递之Fragment从Activity获取数据
整理Fragment与Activity之间的数据交换,大体上包括三种: 1.Fragment从Activity获取数据 2.Activity从Fragment获取数据 3.Fragment之间获取数据 ...
- 【Django+Element UI】使用一个接口文件,搞定分页获取数据,模糊查询后分页获取数据
1:序列化获取数据的接口设计 1:分页获取序列化数据 2:是个能传参数的接口 class Society(APIView): def post(self, request): keywords = s ...
- php 写入数据到MySQL以及从MySQL获取数据,页面出现乱码的解决方法
现象如标题. 解决思路: 1确定数据库charset是否是utf-8 a. charset不是utf-8 1, 更改数据库charset为utf-8 ALTER DATABASE db_name DE ...
- Android Fragment与Activity之间的数据交换(Fragment从Activity获取数据)
Fragment与Activity之间的数据交换,通常含有3: 一.Fragment从Activity获取数据(仅本文介绍了一个第一): 两.Activity从Fragment获取数据: 三.Frag ...
- pickle 数据对象的序列化和反序列化
python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...
- JS实现Ajax,Josn数据的序列化和反序列化---例: 省市区联动(包含get,post)
服务器端相应JOSN数据 用到序列化和反序列化----命名空间using System.Web.Script.Serialization; public void ProcessRequest(H ...
- WCF技术剖析之十二:数据契约(Data Contract)和数据契约序列化器(DataContractSerializer)
原文:WCF技术剖析之十二:数据契约(Data Contract)和数据契约序列化器(DataContractSerializer) [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济 ...
随机推荐
- HTML meta 标签用法(转)
meta主要为分HTTP标头信息(HTTP-EQUIV)和页面描述信息(NAME).标头信息包括文档类型.字符集.语言等浏览器正确显示网页的信息及处理动作:网页描述如内容的关键字.摘要.作者和定义ro ...
- Javascript词法分析
词法分析的过程: 先分析参数 分析变量声明 分析函数声明 具体步骤: 在函数运行前的一瞬间,先生成Active Object活动对象; 函数声明的参数,形成AO的属性,值为undefined 接收参数 ...
- 刷题ING...
我用codeVS刷题.. 努力准备!!
- WaitForMultipleObjects返回失败原因之一
上网搜了下 关于 WaitForMultipleObjects等待多个线程退出的状态失败的情况,也有人遇到类似的情况. 一次项目中我也遇到这么个情况.项目中创建线程都是用的 _beginthread ...
- Spring+SpringMVC+Mybatis大整合(SpringMVC采用REST风格、mybatis采用Mapper代理)
整体目录结构: 其中包下全部是采用mybatis自动生成工具生成. mybatis自动生成文件 <?xml version="1.0" encoding="UTF- ...
- weex环境搭建
1. 安装weex-toolkit sudo npm install -g weex-toolkit 装完之后就可以使用weex命令了.输入weex命令可以看到: weex test.we --qr ...
- Controller
http://www.cnblogs.com/artech/archive/2012/08/15/action-result-03.html
- Oracle学习笔记(二)
2.Oracle用户管理 (1)创建用户:create user 用户名 identified by 密码(需要dba权限); sql>create user yzw identified by ...
- 总结.NET 中什么时候用 Static
静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数.当类中没有依赖对象标识的数据或行为时,就可以使用静态类.静态类成员是可独立于任何对象标识的数据和行为,即无论对象发生什么更改,这些数据和函 ...
- spring 4 @RestController 小试
在建立好基本的spring框架后,可以尝试实现一下简单的rest风格请求 1.需要引入的包,部分pom.xml文件 <dependency> <groupId>org.code ...