Jquery使用JQgrid组件处理json数据

目录
  • 一、jqGrid特性
  • 二、调用ajax的事件顺序如下:
  • 三、JQgrid处理json数据
    • 1、定义Jqgrid
    • 2、重新加载数据
    • 3、后台处理
    • 4、返回JSON格式:
  • 四、JQgrid处理Local数据
  • 五、JQgrid分组与行选择
  • 六、 JQgrid构建查询
    • 1、定义Jqgrid
    • 2、手工构建查询参数
      • (1)单字段搜索:
      • (2)多字段搜索
    • 3、后台根据查询条件返回查询结果
    • 4、定义HTML

jqGrid 实例中文版网址:http://blog.mn886.net/jqGrid/

国外官网:http://www.trirand.com/blog/jqgrid/jqgrid.html

http://free-jqgrid.github.io/

http://www.guriddo.net/demo/guriddojs/

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs

http://www.guriddo.net/documentation/guriddo/javascript/

jqGrid是Trirand软件开发公司的Tony Tomov开发的一个方便人们开发使用的web组件,它包含了许多免费和开源的库如:jQuery, ThemeRoller, & jQuery UI等 ,同时最新的版本已经支持bootstrapUI,Tony最初的时候是因为他需要一种方式来表示数据库信息,这种方式有速度上的要求同时还要独立于服务器端技术和后台数据库,于是jqGrid诞生了,从最初的版本到现在已经升级到了Guriddo jqGrid 5.4 ,之前的各个版本都是在不断的修复bug以及添加符合需求的新功能。jqGrid越来越趋于完善。

jqGrid 是一个用来显示网格数据的jQuery插件,通过使用jqGrid可以轻松实现前端页面与后台数据的ajax异步通信。

一、jqGrid特性

  • 基于jquery UI主题,开发者可以根据客户要求更换不同的主题。
  • 兼容目前所有流行的web浏览器。
  • Ajax分页,可以控制每页显示的记录数。
  • 支持XML,JSON,数组形式的数据源。
  • 提供丰富的选项配置及方法事件接口。
  • 支持表格排序,支持拖动列、隐藏列。
  • 支持滚动加载数据。
  • 支持实时编辑保存数据内容。
  • 支持子表格及树形表格。
  • 支持多语言。
  • 目前是免费的。

二、调用ajax的事件顺序如下:

  • beforeRequest
  • loadBeforeSend
  • serializeGridData--从第4项开始为返回数据过程的事件
  • loadError (if a error from the request occur - the event from steps 5 till 7 do not execute. If there is no error the event 4. does not execute and we continue to with the step 5.)
  • beforeProcessing
  • gridComplete
  • loadComplete

三、JQgrid处理json数据

1、定义Jqgrid

$("#tableOEE").jqGrid({
    data: [],
    datatype: "json",
    rownumbers: true, //显示行号
    loadonce:true,//在加载完成后,datatype自动变成local
    autowidth: true,
    pager: "#pager",
    viewrecords: true,//是否显示总记录数
    rowNum: 300,//表格中显示的记录数
    rowList: [10, 20, 30],
    height: '100%',
    gridview: true,//整个表格都构造完成后再添加到grid中。
    jsonReader:{repeatitems:false,id:"2"},//2表示id为rowData的第三个元素。
    beforeProcessing:function(res,status,errror){
        $.each(res.rows,function(i,n){//在来自Sever的数据Grid处理之前,格式化返回的JSON数据
            n.time=Number(n.time).toExponential(3);
            n.shift=["早","中","晚"][n.shift];
        });
    },
    loadComplete:function(xhr){//Grid加载完成后,可对Grid中的元素绑定事件了。分组完成。
         $("td.tdQty").bind("click", {}, getDcData);
         var rowCount=$(this).getGridParam("records");
    },
    colModel: [{ name: 'line', index: 'line', width: 80, align: 'center', label: '产线', key:true,editable:true },//排序sidx
                { name: 'shift', index: 'shift', width: 80, align: 'center', label: '班次' },
                { name: 'remark_avai', index: 'remark_avai', label: '备注', hidden: true },
                { name: 'qty_dot', index: 'qty_dot', align: 'right', classes: 'linkbyPop tdQty', label: '总点数', formatter: NumFmatter },       //formatter 格式化字段,unformat:反格式化。
                ]
});

jQuery("#tableOEE").jqGrid('navGrid', '#pager', { edit: false, add: false, del: false, search: true, refresh: true },
{}, //编辑edit参数
{}, //添加add参数
{}, //删除del参数
{ multipleSearch: true },//搜索search参数
{closOnEscape:true}//查看view参数
);

jQuery("#tableOEE").jqGrid('setGroupHeaders', {//表头分组
   useColSpanStyle: true,
   groupHeaders: [
     { startColumnName: 'time_avai', numberOfColumns: 1, titleText: '<em>A</em>' },
     { startColumnName: 'qty_dot', numberOfColumns: 3, titleText: '<em>F</em>' }]
});

2、重新加载数据

$("#tableOEE").jqGrid("clearGridData", true);
$("#tableOEE").jqGrid("setGridParam", { data: {...} });
//或者
$("#tableOEE").setGridParam({ datatype: "json",url: "ajax/Punch.ashx",postData:"line=aa&lot=''"});

$("#tableOEE").trigger("reloadGrid");

3、后台处理

var GridJson=new { total="10",page="1",rows=oeeList,records=oeeList.Count.ToString()};
returnStr=new JavascriptSerialzer().Serilize(gridJson);

4、返回JSON格式:

1、当repeatitems:false时,名称要与colModel中的名字一致 。

{"total":"10","page":"1","rows"=[{"line":"A1","Shift":3,"qty":123,"time":0.02}],"records":"4"} //records为查询出的总记录数,并非本页记录数。

2、如果repeatitems:true(默认)

{"total":"10","page":"1","rows":[{id:"1",cell:["cell1","cell2"]},{id:"2",cell:["cell3","cell4"]}],"records":"4"}

对数字进行千分符分割:

function getNumberSpliter(num) {
    if (num != '' && !isNaN(num)) {
        re = /(\d{1,3})(?=(\d{3})+(?:$|\.))/g;
        n = String(num).replace(re, "$1,");
        return n;
    }
    else return num;
}

四、JQgrid处理Local数据

$("#tableOEE").jqGrid({
        data: [],
        datatype: "local",
        ...
});
  //获得服务器数据
$.ajax({
    type: "GET",
    cache: false,
    url: "ajax/Punch.ashx",
    data: i,
    success: function (res) {
        if (res.indexOf("SERVER_ERROR") == -1) {
            res = $.parseJSON(res);
            $.each(res, function (i, n) {
                this.shift = Shift[this.shift];
                this.time_perdot = Number(this.time_perdot).toExponential(3);
            });
            $("#tableOEE").jqGrid("clearGridData", true);
            $("#tableOEE").jqGrid("setGridParam", { data: res });
            $("#tableOEE").trigger("reloadGrid");
            $("td.tdQty").bind("click", {}, getDcData);//绑定grid中元素事件
        }
        else {
            alert(res.replace("SERVER_ERROR", "错误"));
        }
        $.unblockUI();
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert(textStatus + errorThrown);
    }
});

五、JQgrid分组与行选择

$("#tableOEE").jqGrid({
        grouping: true,
        groupingView: { groupField: ['BoxId'] },//分组
        multiselect: true,
        autowidth: true,
        //...
        colModel: [
                        { name: 'Serial', index: 'Serial', align: 'center', label: '序列号' },
                        { name: 'BoxId', index: 'BoxId', align: 'center', label: '箱号' },
                        { name: 'progress_recid', key: true, index: 'progress_recid', width: 80, align: 'center', label: '内部号' }/
                        //key: true主键,服务器返回的数据没有ID时,将此作为rowid使用。
                        ],
        onSelectRow: selectRow
});

var parentWidth = $("#DIV_Body").css("width").replace("px", "");
$("#tableOEE").jqGrid("setGridWidth", parentWidth);

function selectRow(rowid, status, e) {
    if (status) {
        if ($("#tableOEE").getRowData(rowid).PalLocation != "在货仓") {
            $("#tableOEE").setSelection(rowid, false);//取消选择
            alert("在货仓状态的卡板,只能由SIS人员操作");
        }

        var selRows = $("#tableOEE").getGridParam('selarrrow');//'selrow'最后选择行的主键

        if (selRows.length > 2) {
            $("#tableOEE").setSelection(rowid, false);
                    alert("只能选择两个序列号更换");
        }
    }
}

六、 JQgrid构建查询

1、定义Jqgrid

ajax远端请求分页,排序,手工构建搜索参数,进行服务端查询,以及CURD操作。

$(function () {
    $("#grid").jqGrid({
        url: "/PushPDA/GetTodoLists",
        datatype: 'json',
        mtype: 'Get',
        colNames: ['操作', 'ID', 'IP', '所属人', '生产线', '状态', '类型', '更新日期', '更新时间'],
        colModel: [
            { name: 'act', index: 'act', align: 'center', width: 80, search: false, sortable: false, editable: false },
            { hidden: true, align: 'center', name: 'ID', index: 'ID', editable: true, key: true },
            { name: 'IP', align: 'center', index: 'IP', editable: true },
            { name: 'Owner', align: 'center', index: 'Owner', editable: true },
            { name: 'Line', align: 'center', index: 'Line', editable: true },
            { name: 'Status', align: 'center', index: 'Status', editable: true, },
            { name: 'Type', align: 'center', index: 'Type', editable: true, edittype: 'select', formatter: 'select', editoptions: { value: { 'CASE': '套料', 'BIG': '中大件料' } } },
            { name: 'UpdateDate', align: 'center', index: 'UpdateDate', editable: false },
            { name: 'UpdateTime', align: 'center', index: 'UpdateTime', editable: false }
        ],
        pager: jQuery('#pager'),
        rowNum: 100,
        rowList: [10, 20, 30, 40],
        height: '100%',
        viewrecords: true,
        emptyrecords: 'No records to display',
        jsonReader: {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: false,
            Id: "0"
        },
        autowidth: true,
        multiselect: false,
        beforeProcessing: function (res) {//格式化返回数据
            if (!res)
                return;
            //$.each(res.rows, function (i, n) {
            //    n.UpdateDate = DatefromJSON(n.UpdateDate);
            //    n.UpdateTime = secondToTimeString(n.UpdateTime);
            //});
        },
        gridComplete: function () {
            var ids = $("#grid").getDataIDs();//jqGrid('getDataIDs');
            for (var i = 0; i < ids.length; i++) {
                var cl = ids[i];
                be = "<input style='height:22px;width:40px;' type='button' value='编辑' onclick=\"jQuery('#grid').jqGrid('editGridRow','" + cl + "',{url: '/PushPDA/Edit',checkOnSubmit:true,checkOnUpdate:true,closeAfterEdit:true,closeOnEscape:true});\"  />";
                de = "<input style='height:22px;width:40px;' type='button' value='删除' onclick=\"jQuery('#grid').jqGrid('delGridRow','" + cl + "',{ url: '/PushPDA/Delete', closeOnEscape:true});\"  />";
                jQuery("#grid").jqGrid('setRowData', ids[i], { act: be + de });
            }
        },
    }).navGrid('#pager', { edit: true, add: true, del: true, search: false, refresh: true },
        {
            // edit options
            zIndex: 100,
            url: '/PushPDA/Edit',
            closeOnEscape: true,
            closeAfterEdit: true,
            recreateForm: true,
            afterComplete: function (response) {
                if (response.responseText) {
                    alert(response.responseText);
                }
            }
        },
        {
            // add options
            zIndex: 100,
            url: "/PushPDA/Create",
            closeOnEscape: true,
            closeAfterAdd: true,
            afterComplete: function (response) {
                if (response.responseText) {
                    alert(response.responseText);
                }
            }
        },
        {
            // delete options
            zIndex: 100,
            url: "/PushPDA/Delete",
            closeOnEscape: true,
            closeAfterDelete: true,
            recreateForm: true,
            msg: "Are you sure you want to delete this task?",
            afterComplete: function (response) {
                if (response.responseText) {
                    alert(response.responseText);
                }
            }
        });
    new_search();
});

//将整数秒格式转成时间格式。
function secondToTimeString(seconds) {
    if (seconds == null) return "";
    var hh = parseInt(seconds / 3600).toString();
    seconds -= hh * 3600;
    var mm = Math.round(seconds / 60).toString();
    if (hh.length == 1) {
        hh = "0" + hh;
    }
    if (mm.length == 1) {
        mm = "0" + mm;
    }
    return hh + ":" + mm;
}

//解析JOSN返回的日期字符串格式。
function DatefromJSON(jsonstr) {
    // return eval (jsonstr.replace(new RegExp('/Date\\((-?[0-9]+)\\)/','g'),'new Date($1)')).toLocalDateString();
    if (jsonstr == null) return "";
    d = eval('new ' + (jsonstr.replace(/\//g, '')));
    var month = (d.getMonth() + 1);
    month = ("00" + month).substr(("" + month).length);
    var day = d.getDate()
    day = ("00" + day).substr(("" + day).length);
    return d.getFullYear() + "-" + month + "-" + day;
}

2、手工构建查询参数

(1)单字段搜索:

主要构建的查询参数为searchField,searchString,searchOper

var searchPara = {   // 构建查询需要的参数
        searchField: "Line",
        searchString: strLines,
        searchOper: "in"
    };
// 获得当前postData选项的值
var postData = $("#grid").jqGrid("getGridParam", "postData");
// 将查询参数融入postData选项对象
    $.extend(postData, searchPara);
    $("#grid").jqGrid("setGridParam", {
        url: "/PushPDA/GetTodoLists",
        search: true    //将jqGrid的search选项设为true
    }).trigger("reloadGrid", [{ page: 1 }]);   // 重新载入Grid表格,以使上述设置生效

(2)多字段搜索

主要构建的查询参数为groupOp,rules,filed,op,data.

var rules = "";
// 构建查询需要的参数
var searchField = "Line";
var searchString = strLines;
var searchOper = "in";
if (searchField && searchOper && searchString) { //如果三者皆有值且长度大于0,则将查询条件加入rules字符串
        rules += ',{"field":"' + searchField + '","op":"' + searchOper + '","data":"' + searchString + '"}';
    }
if (strDate1) {
        rules += ',{"field":" IP","op":"eq","data":"' + strDate1 + '"}';
    }
if (rules) { //如果rules不为空,且长度大于0,则去掉开头的逗号
        rules = rules.substring(1);
    }
//串联好filtersStr字符串
var filtersStr = '{"groupOp":"AND","rules":[' + rules + ']}';
// 获得当前postData选项的值
var postData = $("#grid").jqGrid("getGridParam", "postData");
// 将查询参数融入postData选项对象
    $.extend(postData, { filters: filtersStr });
    $("#grid").jqGrid("setGridParam", {
        url: "/PushPDA/GetTodoLists",
        search: true    // 将jqGrid的search选项设为true
    }).trigger("reloadGrid", [{ page: 1 }]);   // (7)重新载入Grid表格,以使上述设置生效

3、后台根据查询条件返回查询结果

注意使用Linq语句,以及动态Linq查询。

public JsonResult GetTodoLists(string sidx, string sord, int page, int rows, bool _search, string searchField, string searchString, string searchOper, string filters)  //Gets the todo Lists.
{
    IQueryable<PushPdaInfo> pdas = db.PushPDAs;
    IQueryable<PushPdaInfo> todoListsResults = null;
    //搜索
    if (_search)
    {
        if (!string.IsNullOrEmpty(searchField))//单字段搜索
        {
            todoListsResults = pdas.Where(p => searchString.IndexOf(p.Line) > -1);
        }
        else if (!string.IsNullOrEmpty(filters))//多字段搜索
        {
            JObject ofilters = JObject.Parse(filters);
            string searchField1;
            string searchString1;
            string sql;
            for (int i = 0; i < ofilters["rules"].Count(); i++)
            {
                searchField1 = ofilters["rules"][i]["field"].ToString();
                searchString1 = ofilters["rules"][i]["data"].ToString();
                sql = "\"" + searchString1 + "\".Contains(" + searchField1 + ")";
                todoListsResults = pdas.Where(sql);
            }
        }
    }
    else
    {
        return Json(new { }, JsonRequestBehavior.AllowGet);
    }
    //排序
    if (string.IsNullOrEmpty(sidx)) sidx = "IP";
    todoListsResults = todoListsResults.OrderBy(sidx + " " + sord);
    //分页
    int pageIndex = Convert.ToInt32(page) - 1;
    int pageSize = rows;
    int totalRecords = pdas.Count();
    var totalPages = (int)Math.Ceiling((float)totalRecords / (float)rows);
    todoListsResults = todoListsResults.Skip(pageIndex * pageSize).Take(pageSize);
    var todoListsResults1 = from p in todoListsResults.ToList()
                            select new
                            {
                                p.ID,
                                p.IP,
                                p.Owner,
                                p.Line,
                                p.Status,
                                p.Type,
                                UpdateDate = p.UpdateDate.HasValue ? p.UpdateDate.GetValueOrDefault().ToShortDateString() : "",
                                UpdateTime = p.UpdateTime.HasValue ? IntTimeToStringTime(p.UpdateTime.GetValueOrDefault()) : ""
                            };
    var jsonData = new
    {
        total = totalPages,
        page,
        records = totalRecords,
        rows = todoListsResults1
    };
    return Json(jsonData, JsonRequestBehavior.AllowGet);
}

4、定义HTML

<div id="search_container" title="Search Options">
    <div id="boxbody">
        <fieldset>
            <legend>Query IP<span id="spanClearDates">[Clear]</span></legend>
            <table>
                <tr>
                    <td><strong>扫描枪IP: </strong>
                        <input id="Text_Date1" type="text" />
                    </td>
                </tr>
            </table>
        </fieldset>
    </div>
</div>
<div>
    <table id="grid"></table>
    <div id="pager"></div>
</div>

到此这篇关于Jquery使用JQgrid组件处理json数据的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • jQuery访问json文件中数据的方法示例

    本文实例讲述了jQuery访问json文件中数据的方法.分享给大家供大家参考,具体如下: 有时候我们可能需要用到json文件存储数据,然后通过前台语言直接进行访问. 首先是json文件: { "管道": [ { "ElementId": "标识号", "GISID": "GISID", "Label": "编号", "StartNodeID":&q

  • jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法

    看到很多网上对含特殊字符 json 数据处理,都是逐个判断是哪个特殊字符,比如回车如何处理,引号如何处理.其实有现成的代码库可以做这件事情,下载 json-lib-2.3-jdk15.jar : 复制代码 代码如下: import net.sf.json.util.JSONUtils; String str = (String) value; String s1 = JSONUtils.quote(str);//首尾带引号 String s3 = JSONUtils.stripQuotes(s1

  • jQuery读取本地的json文件(实例讲解)

    最近写项目需要读取本地的json文件,然后悲催的发现前端新手的我居然不会,查查找找发现这东西并不难,但是应该是比较常用的,毕竟json太好用了! 我是直接用的 jquery 实现的,但是 Ajax 也可以,不过我用的Ajax的简约版 $.getJSON(url,function); 代码如下: function getScenemapData(){ var jsondata={}; $.getJSON("../server/php/files/scenedesc.json", func

  • jQuery.parseJSON()函数详解

    jQuery.parseJSON()函数用于将格式完好的JSON字符串转为与之对应的JavaScript对象. 所谓"格式完好",就是要求指定的字符串必须符合严格的JSON格式,例如:属性名称必须加双引号.字符串值也必须用双引号. 如果传入一个格式不"完好"的JSON字符串将抛出一个JS异常,例如:以下字符串均符合JSON格式,但它们不是格式完好的JSON字符串(因此会抛出异常): // 以下均是字符串值,省略了两侧的引号,以便于展现内容 {id: 1} // id

  • jQuery中将json数据显示到页面表格的方法

    jQuery中将json数据显示到页面表格代码.stu模拟的就是一个数据库,假设我们的数据已经是json 的文件格式,接下来就是将这个json文件里面的数据显示到页面的表格上. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquery-1.8.3.js">&l

  • JS 遍历 json 和 JQuery 遍历json操作完整示例

    本文实例讲述了JS 遍历 json 和 JQuery 遍历json操作.分享给大家供大家参考,具体如下: json 遍历 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>demo data</title> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.j

  • jQuery解析json格式数据示例

    本文实例讲述了jQuery解析json格式数据.分享给大家供大家参考,具体如下: var arr1 = [ "one", "two", "three", "four", "five" ]; $.each(arr1, function(){ alert(this); }); 输出: one   two  three  four   five var arr2 = [[1, 2, 3], [4, 5, 6],

  • jQuery序列化后的表单值转换成Json

    小朋友有一个表单,他想以Json的方式获取到表单的内容.小朋友尝试了以下方式. 通过$("#form").serialize()可以获取到序列化的表单值字符串. 例如: a=1&b=2&c=3&d=4&e=5 通过$("#form").serializeArray()输出以数组形式序列化表单值. [ {name: 'firstname', value: 'Hello'}, {name: 'lastname', value: 'Worl

  • Jquery使用JQgrid组件处理json数据

    目录 一.jqGrid特性 二.调用ajax的事件顺序如下: 三.JQgrid处理json数据 1.定义Jqgrid 2.重新加载数据 3.后台处理 4.返回JSON格式: 四.JQgrid处理Local数据 五.JQgrid分组与行选择 六. JQgrid构建查询 1.定义Jqgrid 2.手工构建查询参数 (1)单字段搜索: (2)多字段搜索 3.后台根据查询条件返回查询结果 4.定义HTML jqGrid 实例中文版网址:http://blog.mn886.net/jqGrid/ 国外官网

  • php基于jquery的ajax技术传递json数据简单实例

    本文实例讲述了php基于jquery的ajax技术传递json数据简单实现方法.分享给大家供大家参考,具体如下: html页面: <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <script type="text/javascript" src="jquery-1.8.2.mi

  • jQuery通过ajax方法获取json数据不执行success的原因及解决方法

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准写法,导致总是执行error回调方法 解决方案:使json格式务必符合下述3个标准写法: 1)键名称:用双引号括起: 2)字符串:用双引号括起: 3)数字,布尔值不需要使用双引号括起 : 注意:一定是双括号! 2.jQuery中ajax使用json数据类型总是跳过success执行error语句 执

  • jQuery使用getJSON方法获取json数据完整示例

    本文实例讲述了jQuery使用getJSON方法获取json数据.分享给大家供大家参考,具体如下: demo.js: [ { "name":"吴者然", "sex":"男", "email":"demo1@123.com" }, { "name":"吴中者", "sex":"男", "email&q

  • jQuery向webApi提交post json数据

    在页面想webApi post json数据的时候,发现webapi不能直接以json的方式接受数据(注:我是没有发现一个很好的方式来post json数据的);但是可以以数据结构的方式传递: 如下: //js代码 var d = { Id: "1", Name: "name", Value: "OldValue", 7 }; $.ajax({ type: "post", url: url1, data: JSON.strin

  • jQuery中使用each处理json数据

    eg:给传进来的ID中当其对应的值为true时,即给对应的ID标签添加一个class 名为  focus,如: var obj = { id01:'true', id02:'flase', id03:'true'}; $.each(obj,function(key,val){ if(val == 'true'){ $('#' + key).addClass('focus'); } }); 结果:ID为id01及id03的标签会添加一个class标签: eg2: json数据如下: [ {"Id&

  • JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码

    通过JQuery可以跨域获取JSON数据,但必须弄清楚的是,JQuery不可以跨域获取任意JSON格式的数据,必须要通过服务端输出特定的针对JQuery跨域读取的JSON数据.你可能目前对此仍然毫无了解,没关系,本文将以最简单易懂的方式介绍这个技术,相信人人都容易读懂,并能够实际应用. JQuery获取同域的JSON数据 首先引用jQuery库文件: <script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js&quo

  • jQuery ajax json 数据的遍历代码

    先给大家说下我的需求:进行ajax请求后,后台传递回来以下json数据. 具体实现代码如下所示: JavaScript代码 { "data":[ {"id":"1","name":"选择A","value":"A"}, {"id":"2","name":"选择B","value&

  • 使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇

    调用jQuery的ajax方法时,jQuery会根据post或者get协议对参数data进行序列化; 如果提交的数据使用复杂的json数据,例如: {userId:32323,userName:{firstName:"李",lastName:"李大嘴"}} 那么服务器是无法正常接收到完整的参数,因为jQuery对data的序列化,是使用了键值对拼装的方式; 参数拼装成 userId=32323&userName=object ; userName所指向的对象

  • jquery的ajax异步请求接收返回json数据实例

    jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发送设置的datatype设置为jsonp格式数据或json格式都可以. 代码示例如下: 复制代码 代码如下: $('#send').click(function () {     $.ajax({         type : "GET",         url : "a.php",         dataType : "json

随机推荐