js前台对datagrid的定义代码,如下

                mygrid = $('#mytable').datagrid({
                    fit: true, //自动大小
                    height: 'auto',
                    rownumbers: true, //行号
                    fitColumns: true,
                    collapsible: true, //是否可折叠的
                    loadMsg: '数据装载中......',
                    singleSelect: true, //单行选取
                    pagination: true //显示分页
//                    columns: [[]]

                });
                //设置分页控件
                $("#mytable").datagrid('getPager').pagination({
                    beforePageText: "第",
                    afterPageText: "页",
                    displayMsg: "当前 {from} - {to}条数据   共{total} 条数据",
                    pageSize: 100,
                    pageList: [20, 30, 40, 50, 60, 70, 80, 90, 100],
                    onBeforeRefresh: function () {
                    },
                    onRefresh: function (pageNumber, pageSize) {
                    },
                    onChangePageSize: function () {
                    },
                    onSelectPage: function (pageNumber, pageSize) {
                        getData();
                    }
                });

js查询请求代码,如下:

                function getData() {
                    var param = "";
                    $(".mynon").each(function () {
                        if ($(this).attr("checked") == "checked")
                            param = param + "#" + $(this).attr("id");
                    });
                    if (param != "") {
                        var grid = $('#mytable');
                        var options = grid.datagrid('getPager').data("pagination").options; //选项
                        var pagenum = options.pageNumber; //页数
                        var total = options.total; //总数
                        var max = Math.ceil(total / options.pageSize);
                        var pagesize = options.pageSize; //每页行数

                        var sttime = $("#starttime").combobox('getText');
                        var ettime = $("#endtime").combobox('getText');
                        $.ajax({
                            type: "post",
                            url: "../frm/report.aspx/GetReport",
                            data: "{'begin':'" + sttime + "','end':'" + ettime + "','param':'" + param + "','pagenum':'" + pagenum + "','pagesize':'" + pagesize + "'}",
                            contentType: "application/json; charset=utf-8",
                            dataType: "json",
                            async: false,
                            success: function (data) {
                                var d = eval('(' + data.d + ')');
                                try {
                                    $('#mytable').datagrid("loadData", d);
                                } catch (e) {
                                    alert(e);
                                }
                            },
                            error: function (err) {
                                alert("错误代码:" + err.status);
                            }
                        });
                    }
                    else {
                        alert("请选择相应的设备!");
                    }
                }
            });

ASP.NET后台代码,如下图:

        [WebMethod]
        public static string GetReport(string begin, string end, string param, string pagenum, string pagesize)
        {
            string userID = HttpContext.Current.Session["userID"].ToString();
            string[] paras = param.Split('#');
            string measures = "'";
            ; i < paras.Length; i++)
            {
                measures = measures + "','" + paras[i];
            }
            measures = measures + "'";
            string beginTime = begin + ":00";
            string endTime = end + ":00";
            ;

            DataTable dt = drWater.BLL.infoManager.GetHistoryPageInfo(userID, beginTime, endTime, measures, pagenum, pagesize, out totalcount);
            List<json.dataItemJson> dataList = new List<json.dataItemJson>();
            if (dt != null)
            {
                )
                {
                    ; i < dt.Rows.Count; i++)
                    {
                        json.dataItemJson item = new json.dataItemJson();
......
                        item.status = dt.Rows[i]["status"].ToString();
                        dataList.Add(item);
                    }
                }
            }
            json.dataListJson dataListJson = new json.dataListJson();
            dataListJson.total = totalcount;
            dataListJson.rows = dataList;
            JavaScriptSerializer js = new JavaScriptSerializer();
            js.MaxJsonLength = int.MaxValue;
            string str = js.Serialize(dataListJson);
            return str;
        }

经过多次调试,返回的json字符串,虽然符合easyUi datagrid的数据格式标准,但是载入数据的时候出错!

使用eval转化json字符串之后,解决该问题!

ASP.NET easyUI--datagrid 通过ajax请求ASP.NET后台数据的分页查询的更多相关文章

  1. 利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理

    在Asp.net Web API中,对业务数据的分页查询处理是一个非常常见的接口,我们需要在查询条件对象中,定义好相应业务的查询参数,排序信息,请求记录数和每页大小信息等内容,根据这些查询信息,我们在 ...

  2. javaScript(拼写树形)+ajax请求,去后台查找数据

    第一步:页面加载完成时,利用jquery中的一函数,调用js方法,js方法,发送ajax请求,去后台查找父类权限集合,响应回来json格式的数据,对数据进行操作,往页面上添加内容 //页面初始化加载菜 ...

  3. bootstrap-data-target触发模态弹出窗元素的data使用 data-toggle与data-target的作用 深入ASP.NET MVC之九:Ajax支持 Asp.Net MVC4系列--进阶篇之AJAX

    bootstrap-data-target触发模态弹出窗元素的data使用 时间:2017-05-27 14:22:34      阅读:4479      评论:0      收藏:0      [ ...

  4. easyUi 学习笔记 (二 ) 使用tabs 里datagridview 发送ajax请求 不访问后台的问题

    这个BUG 我花了一个半小时, 还是看不出哪里的问题,  于是就百度到这么一段话,我需要记住 <================================================= ...

  5. EasyUI DataGrid 基于 Ajax 自定义取值(loadData)

    为 datagrid 加载数据分两种情况: 一种是基于 Ajax 请求获取数据然后通过"loadData"方法来赋值: 另一种是直接使用 datagrid 自带的"loa ...

  6. EasyUI datagrid组件绑定有转义字符的json数据出错

    最近项目中一个页面的datagrid出现了莫名其妙的问题, 首先是分页数据的第二页和第三页不能展示,过了一天后第一页也出不来了, 默认首页不出来导致后续分页处理无法进行, 整个数据都不出来了,最后只能 ...

  7. Ajax请求ashx返回各类数据的常见处理方式

    .请求text数据,在success事件中手动解析 前台: $.ajax({ type: "post", url: "checkFile.ashx", data ...

  8. Jquery通过ajax请求NodeJS返回json数据

    最近看了NodeJS相关的,在网上查了下结合AJAX的应用,感觉应用前景还是不错的.为什么用这个组合呢? 1.NodeJS不需要安装,拷贝过去就可以使用,而环境变量可以只配置在当前cmd窗口,运行方便 ...

  9. SpringBoot16 MockMvc的使用、JsonPath的使用、请求参数问题、JsonView、分页查询参数、JsonProperty

    1 MockMvc的使用 利用MockMvc可以快速实现MVC测试 坑01:利用MockMvc进行测试时应用上下文路径是不包含在请求路径中的 1.1 创建一个SpringBoot项目 项目脚手架 1. ...

随机推荐

  1. 字符编解码的故事(ASCII,ANSI,Unicode,Utf-8区别)

    (关于字符编码的深入解释,请参见我的原创文章<关于字符编码,你所需要知道的>.) 此文为转载,有少许修订,原文出处不详. 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同 ...

  2. 运行eclipse弹出“Failed to load the JNI shared”解决方法

    听周围的人说,看网上的人说eclipse有多么神奇.我不禁好奇万分,于是自己就去eclipse官网下载一个软件.咱也来用用,满怀兴奋的心情,一运行eclipse结果 出现下图的错误提示:“Failed ...

  3. Grunt教程——初涉Grunt

    前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为庞大和复杂,代码维护.打包.发布等流程也 变得极为繁琐,同时浪费的时间和精力也越来越多,当然人为的错误 ...

  4. 【ZZ】 移位贴图 Displacement Mapping

    http://blog.csdn.net/huazai434/article/details/5650629 说明:该技术需要VS3.0的支持!!! 一,移位贴图类似于地形渲染.不过由于移位纹理可以做 ...

  5. 安装CentOS

    1. 用UltraISO,将CentOS写入U盘,然后将两个CentOS iso文件也拷贝到u盘中,由于u盘FAT32的限制,需要调整第一个iso文件的尺寸,剪切到4GB以内即可拷贝进u盘 2. 用u ...

  6. Frenetic HelloSDNWorld

    Follow Frenetic-Github HelloSDNWorld 实验环境: Frenetic虚拟机: 实验步骤: 1.Start up a terminal window - – two a ...

  7. PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [5] 版本设计分析及数据表设计

    APP 版本升级以及 APP 演示 ① 版本升级分析以及数据表设计 ② 版本升级接口开发以及 APP 演示 /** * version_upgrade 版本升级信息表 */ CREATE TABLE ...

  8. 简单实现Redis缓存中的排序功能

    1.在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发 ...

  9. PHP网络操作函数汇总

    PHP网络操作函数汇总 投稿:junjie 字体:[增加 减小] 类型:转载   这篇文章主要介绍了PHP网络操作函数汇总,本文列举了如gethostbyaddr.gethostbyname.head ...

  10. Bootstrap页面布局1 - 下载BS(bootstrap简称)

    1.bootstrap 官方网站:http://wrongwaycn.github.io/bootstrap/docs/index.html 2.如图: 3.下载后得到如下目录结构 bootstrap ...