Jquery+Json+Handler文件结合应用实例
1、页面script代码-【model数据、字符串】
<script type="text/javascript" charset="utf-8" src="Js/jquery-1.6.2.min.js"></script>
<script type="text/javascript">
//提交验证
function ChekFrom()
{
var msg = "";
//取值
var UserName = $("#txtUserName").val();
//验证
if (UserName == "") {
msg += "用户名为空!/r/n";
} else {
$.ajax({
type: "POST",
url: "/Controller/UserHandler.ashx",
data: { Action: "IsUserName", UserName: UserName },
cache: false, //设置时候从浏览器中读取 缓存 true 表示 是
datatype: "json",
async: false,
success: function (result) {
if (result.code == 1) {
msg += "该用户名已存在!/r/n";
}
}
});
}
if (msg == "") {
return true;
} else {
alert(msg);
return false;
}
}
//总计金额 可以写成js方法
function BuyTotal() {
var Total = $.ajax({
type: "POST",
dataType: text,//xml html script json
url: "/Controller/UserHandler.ashx",
data: { Action: "BuyTotal" },
async: false
}).responseText;
return Total;
}
</script>
2、返回Model的handler代码
<%@ WebHandler Language="C#" Class="UserHandler" %>
using System;
using System.Web;
using ECS.Utility;
using System.Collections.Generic;
//使用session的时候必须继承IRequiresSessionState接口:, System.Web.SessionState.IRequiresSessionState
public class UserHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//全局默认返回信息
string Json = JsonUtil.Serialize(new { code = 0, msg = "" });
//取值
string Action = context.Request.Form["Action"] == null ? "" : context.Request.Form["Action"].ToString().Trim();
string UserName = context.Request.Form["UserName"] == null ? "" : context.Request.Form["UserName"].ToString().Trim();
//判断
if (!string.IsNullOrEmpty(Action))
{
//验证用户
if (Action.Equals("IsUserName"))
{
//验证
if (IsExistUser(UserName))
{
Json = JsonUtil.Serialize(new { code = 1, msg = "用户名已存在!" });
}
else
{
Json = JsonUtil.Serialize(new { code = 0, msg = "用户名可以注册!" });
}
}
//计算金额
if (Action.Equals("BuyTotal"))
{
//Json格式
//Json = JsonUtil.Serialize(new { code = 1, msg = "成功", Total = 100 });
//
Json = "100";
}
else
{ //Json格式
//Json = JsonUtil.Serialize(new { code = 0, msg = "失败", Total = 0 });
Json = "0";
}
}
//最终返回信息
context.Response.Write(Json);
}
/// <summary>
/// 判断UserName是否存在
/// </summary>
/// <param name="userName">用户名</param>
/// <returns>返回true or false</returns>
public bool IsExistUser(string userName)
{
List<LSY.Model.A_User> UserList = new LSY.BLL.A_User().GetList(null, "UserName='" + userName.Trim() + "'and Type=0", null);
if (UserList.Count > 0)
{
return true;
}
else
{
return false;
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
3、页面script代码-【DataTable、List】
//查询城市
function getCity(CityVal) {
var DDL_Province = $("#DDL_Province");
var DDL_City = $("#DDL_City");
DDL_City.empty();
DDL_City.append("<option value=\"0\">市/区</option>");
$.ajax(
{
type: "post",
url: "/UserCart/Controller/CityAreas.ashx",
data: { "type": "city", "provinceID": DDL_Province.val() },
dataType: "json",
async: false,
success: function (msg) {
for (var i = 0; i < msg.length; i++) {
if (CityVal == msg[i].CityName) {
if (msg[i].IsCOD == 1) {
DDL_City.append("<option value=" + msg[i].CityID + " selected=\"selected\">" + msg[i].CityName + "*</option>");
} else {
DDL_City.append("<option value=" + msg[i].CityID + " selected=\"selected\">" + msg[i].CityName + "</option>");
}
} else {
if (msg[i].IsCOD == 1) {
DDL_City.append("<option value=" + msg[i].CityID + " >" + msg[i].CityName + "*</option>");
} else {
DDL_City.append("<option value=" + msg[i].CityID + " >" + msg[i].CityName + "</option>");
}
}
}
getArea('');
GetAddreesSpan();
}
})
};
4、返回数据集Handler代码
<%@ WebHandler Language="C#" Class="CityAreas" %>
using System;
using System.Web;
using System.Collections.Generic;
public class CityAreas : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
if (context.Request["type"] == "city")
{
context.Response.Write(select2(context.Request["provinceID"]));
}
else if (context.Request["type"] == "district")
{
context.Response.Write(select3(context.Request["cityID"]));
}
}
public string select2(string id)
{
string str = string.Empty;
if (!string.IsNullOrEmpty(id))
{
List<ECS.Model.A_CityAreas> list = new ECS.BLL.A_CityAreas().GetList(null, "deep=2 and ParentID=" + id, null);
if (list != null && list.Count > 0)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("[");
foreach (ECS.Model.A_CityAreas item in list)
{
sb.Append("{");
sb.Append("\"CityID\":\"" + item.id + "\",\"CityName\":\"" + item.AreaName + "\",\"IsCOD\":\"" + item.IsCOD + "\"");
sb.Append("},");
}
sb.Remove(sb.Length - 1, 1);
sb.Append("]");
str = sb.ToString();
}
}
return str;
}
public string select3(string id)
{
string str = string.Empty;
if (!string.IsNullOrEmpty(id))
{
List<ECS.Model.A_CityAreas> list = new ECS.BLL.A_CityAreas().GetList(null, "deep=3 and ParentID=" + id, null);
if (list != null && list.Count > 0)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("[");
foreach (ECS.Model.A_CityAreas item in list)
{
sb.Append("{");
sb.Append("\"DistrictID\":\"" + item.id + "\",\"DistrictName\":\"" + item.AreaName + "\",\"IsCOD\":\"" + item.IsCOD + "\"");
sb.Append("},");
}
sb.Remove(sb.Length - 1, 1);
sb.Append("]");
str = sb.ToString();
}
}
return str;
}
public bool IsReusable
{
get
{
return false;
}
}
}
Jquery+Json+Handler文件结合应用实例的更多相关文章
- Jquery Uploadify多文件上传实例
jQuery Uploadify开发使用的语言是java. 详细的相关文档,可以参考官网的doc:http://www.uploadify.com/documentation/ 官网的讲解还是很详细的 ...
- jQuery插件AjaxFileUpload文件上传实现Javascript多文件上传功能
Ajax file upload plugin是一个功能强大的文件上传jQuery插件,可自定义链接.或其它元素庖代传统的file表单上传结果,可实现Ajax动态提示文件上传 过程,同时支撑多文 ...
- JQuery 获取json数据$.getJSON方法的实例代码
这篇文章介绍了JQuery 获取json数据$.getJSON方法的实例代码,有需要的朋友可以参考一下 前台: function SelectProject() { var a = new Array ...
- Struts2+JQuery+Json登陆实例
Struts2+JQuery+Json登陆实例 博客分类: Struts2 在搭建之前.. 首先,需要准备struts2.0框架的5个核心包, 以及jsonplugin-0.32.jar 以及js ...
- jquery ajax返回json数据进行前后台交互实例
jquery ajax返回json数据进行前后台交互实例 利用jquery中的ajax提交数据然后由网站后台来根据我们提交的数据返回json格式的数据,下面我来演示一个实例. 先我们看演示代码 代码如 ...
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
- jquery下json数组的操作用法实例
jquery下json数组的操作用法实例: jquery中操作JSON数组的情况中遍历方法用的比较多,但用添加移除这些好像就不是太多了. 试过json[i].remove(),json.remove( ...
- jQuery FileUpload等插件的使用实例
1.jQuery FileUpload 需要的js: jquery.js jquery.fileupload.js jquery.iframe-transport.js jquery.xdr-tran ...
- JS jQuery json日期格式问题的办法
原生JS:Date对象详细参考 Date对象:基于1970年1月1日(世界标准时间)起的毫秒数 本文参考MDN做的详细整理,方便大家参考MDN 构造函数: new Date(); 依据系统设置的当前时 ...
随机推荐
- zookeeper,win版本搭建集群遇坑记录
版本:3.4.10 问题:启动 zkServer.cmd时报错如下, 解决办法: bin目录下 zkEnv.cmd配置 修改为: 把双引号放在外面. 此时运行zkServer.cmd 用zkCli.c ...
- iOS-MD5加密、SHA1加密
1.MD5加密 ///MD5加密************************************** + (NSString *)md5:(NSString *)inputString{ co ...
- 使用react-router实现单页面应用路由
这是Webpack+React系列配置过程记录的第二篇.其他内容请参考: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-rout ...
- web前端性能优化问题
常用的几大优化解决: 页面内容的优化 减少http请求 途径: 1>启用http/2--越来越多的浏览器都开始支持 HTTP/2.HTTP/2 为同一服务器的并发连接问题带来了很多好处.换句话说 ...
- POJ2396 Budget [有源汇上下界可行流]
POJ2396 Budget 题意:n*m的非负整数矩阵,给出每行每列的和,以及一些约束关系x,y,>=<,val,表示格子(x,y)的值与val的关系,0代表整行/列都有这个关系,求判断 ...
- BZOJ 1396&&2865 识别子串[后缀自动机 线段树]
Description 在这个问题中,给定一个字符串S,与一个整数K,定义S的子串T=S(i, j)是关于第K位的识别子串,满足以下两个条件: 1.i≤K≤j. 2.子串T只在S中出现过一次. 例如, ...
- Validate Model State automatically in ASP.NET Core 2.0
if (!ModelState.IsValid) { //TODO 模型验证失败需要做的事情 } 上面的代码不管是在传统的ASP.NET还是新一代ASP.NET Core中都是为了验证模型的状态是否合 ...
- shared_ptr模版推导的问题
问题描述 今天在帮同事解决问题时,发现了这个比较有意思的现象,特记录下来备忘. 问题是这样的,同事开发的是应用程序动态库模块,通过应用的框架中以接口方式供外部使用.然后他想对这些接口生命周期进行控制, ...
- 排序算法(Java实现)
这几天一直在看严蔚敏老师的那本<数据结构>那本书.之前第一次学懵懵逼逼,当再次看的时候,发觉写的是非常详细,非常的好. 那就把相关的排序算法用我熟悉的Java语言记录下来了.以下排序算法是 ...
- ios音乐播放器demo
闲暇时间,写了一个音乐播放器. 个人认为,基于Demo 的学习是最有效果的. 想学习的同学,欢迎下载.知识,只有在传播的时候才有价值. 不懂之处,欢迎留言询问,将热情解答. 运行图 项目结构图 Git ...