DataTable转Json(兼容easyUI特殊json分页)

用法:上述方法是DataTable的扩展方法:静态类静态方法,变量前用this

(一)ps:普通datatable转标准json

DataTable dt = 获取db中的datatable数据。 string jsonStr = dt.DtToJson();//即可转标准json

(二)ps:普通datatable转标准json:使用与easyui分页标准

DataTable dt = TestManager.getData("CartLotteryCartPrizeSon", "Id", page, rows, whereStr, "", out totalRows, out totalPages);//通过分页存储过程获取的DataTable(返回总行数和总页数供easyui分页用) string jsonStr = dt.DtToJson(totalRows);//即可得到easyui标准的可分页的数据,直接供easyui用

       private static readonly System.Web.Script.Serialization.JavaScriptSerializer Serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
       /// <summary>
       /// DataTabel转标准json(兼用easyui的json标准)
       /// </summary>
       /// <param name="dt">DataTable数据源</param>
       /// <param name="total">可选:转普通json传>0的值或忽略此参数;如果针对easyui的json一定要把total参数分页的总行数传进来</param>
       /// <returns>标准json</returns>
       public static string DtToJson(this DataTable dt, int total)
       {
           Serializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
           System.Collections.ArrayList arrayList = new System.Collections.ArrayList();
           foreach (DataRow dataRow in dt.Rows)
           {
               try
               {
                   Dictionary<string, object> dictionary = new Dictionary<string, object>();  //实例化一个参数集合
                   foreach (DataColumn dataColumn in dt.Columns)
                   {
                       dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToString());
                   }
                   arrayList.Add(dictionary); //ArrayList集合中添加键值
               }
               catch (Exception ex)
               {
               }
           }
           if (total > 0)//easyUI专用,分页的总行数
           {
               var dictionary = new Dictionary<string, object>();
               dictionary.Add("total", total);//此参数是easyUI专用
               dictionary.Add("rows", arrayList);//此参数是easyUI专用
               return Serializer.Serialize(dictionary);
           }
           else
           {
               return Serializer.Serialize(arrayList);
           }
           //返回一个json字符串
       }
时间: 2024-10-03 14:45:15

DataTable转Json(兼容easyUI特殊json分页)的相关文章

JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List&lt;T&gt;转JSON,JSON转List&lt;T&gt;,JSON转C#对象

一.JSON解析与字符串化                                                                                            JSON.stringify() 序列化对象.数组或原始值 语法:JSON.stringify(o,filter,indent) o,要转换成JSON的对象.数组或原始值 filter,指定要序列化的属性名 indent,格式化为可读的代码,可指定分隔符或指定的缩进空格个数 var man

EasyUI 各种json数据格式

EasyUI中,用到的各种数据的json数据格式 1. combobox [{ "id":1, "text":"text1" },{ "id":2, "text":"text2" },{ "id":3, "text":"text3", "selected":true },{ "id":4,

使用Struts2和jQuery EasyUI实现简单CRUD系统(八)——Struts与EasyUI使用JSON进行交互

由于前面写了的四篇文章压缩得太厉害,还有真正的原理也没有弄通,所以重新写了使用Struts2和jQuery EasyUI实现简单CRUD系统(一).(二)和(三). 知道ajax与struts间用json交互后,那么EasyUI作为一个JQuery的UI插件集合体,JQuery为一个Javascript库,而ajax是异步的js和xml.JQuery的代码里面就是直接用了Ajax,EasyUI也是一样. 不同于<使用Struts2和jQuery EasyUI实现简单CRUD系统(五)--jsp,

JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List转JSON,JSON转List,JSON转C#对象

一.JSON解析与字符串化 JSON.stringify() 序列化对象.数组或原始值 语法:JSON.stringify(o,filter,indent) o,要转换成JSON的对象.数组或原始值 filter,指定要序列化的属性名 indent,格式化为可读的代码,可指定分隔符或指定的缩进空格个数 var man = { name: "张三", Age: 24, money: 123123 }; var str1 = JSON.stringify(man); //基本序列化 doc

WCF兼容WebAPI输出Json格式数据,从此WCF一举两得

问题起源: 很多时候为了业务层调用(后台代码),一些公共服务就独立成了WCF,使用起来非常方便,添加服务引用,然后简单配置就可以调用了. 如果这个时候Web站点页面需要调用怎么办呢? 复杂的XML , 使用不方便 ,而且通信成本也比较高. 这时候有人受不了了, 于是就新建了一套WebAPI , Web页面调用爽了.但是维护起来又麻烦了,一会儿WCF , 一会儿WebAPI 一段时间过后,可以想象已经相差甚远了. 某一天同事A , 在业务层需要调用一个接口 ,发现它是WebAPI方式的 ,被迫没办

json兼容ie8

今天遇到一个问题,后台传递过来的json对象,在前端解析的时候用JSON.parse(result)方法不好使,查了一下是因为ie浏览器的问题.然后在网上翻了翻,找到了这个办法,可以使这个函数在ie中生效.记录下来备用. 需要的时候在这个页面加载的时候先加载这个函数,然后后续就可以正常使用 var json = JSON.parse(result); $(function(){ /**********************************************json兼容IE8***

SpringMVC+easyUI中datagrid分页实现_2014.5.1

一.概述 SpringMVC: 1.是面对方法级变量的,在操作起来会比struts方便一些(structs是类级变量),具体体现在了srpingMVC的注解上面, 如@RequstMapping("/login"),而且对于返回值ModelAndView这也是一大亮点,既可以返回一个页面(View),再加上@ResponseBody注解以后就可以返回一个      模型对象(也就是一种数据结构). 2.对于方法级传入的参数操作起来也相当方便,比如本例中,在加载DataGrid时,会像后

easyui的datagrid分页写法小结

easyui的datagrid分页死活不起作用...沙雕了...不说了上代码 1 //关闭tab1打开tab2 查询Detail 2 function refundDetail(){ 3 $('#tt').tabs('select', "Detail Information");//subtitle为选项卡的标题 4 //发起ajax请求,查询退款detail 5 var dayendDate = $("#dayendDate").val(); 6 var term

json字符串转换成json对象

Json字符与Json对象的相互转换方式有很多,接下来将为大家一一介绍下,感兴趣的朋友可以参考下哈,希望可以帮助到你 1>jQuery插件支持的转换方式: 代码如下: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: 代码如下: JSON.parse(jsonstr); //可以将json字符