DataTable转Json(兼容easyUI特殊json分页)
2024-08-26 23:25:14
用法:上述方法是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标准):DataTable对象的扩展方法
/// </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 > )//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字符串
}
最新文章
- webform Repeater、地址栏传值、Response
- Nancy之Cache的简单使用
- Autofac.Integration.Mvc.Owin分析
- 一个通用的DataGridView导出Excel扩展方法(支持列数据格式化)
- is(C# 参考)
- POJ1651Multiplication Puzzle(区间DP)
- Android NDK 编译FFmpeg(不需要复杂的环境变量设置)
- Java学习之基本数据类型
- docker~学习笔记索引
- Django Push 的一些资料
- C# - 为引用类型重定义相等性
- FloatingActionButton(悬浮按钮)使用学习<;一>;
- 环境与工具1:微信群刷屏 | itchat
- 10,关于在vs2017中的netcore项目使用BundlerMinifier 配置问题
- poj3617 Best Cow Line(贪心,字典序问题)
- tornado-同步异步下载图片
- 一分钟了解ArrayList和Vector的区别
- JBMP学习引导
- Alpha阶段项目复审
- STL容器的常用用法
热门文章
- CocoaPods 遇到 A host target is a ";parent"; target which embeds a ";child"; target 问题解决
- 第一次scrum meeting
- ThinkPHP框架知识(比较全的知识)
- 第一个sprint与第二个sprint阶段总结
- Android-TabLayout设置内容宽度以及下划线宽度
- final发布简评
- php四排序-选择排序
- [转帖]MerkleDAG全面解析 一文读懂什么是默克尔有向无环图
- BZOJ5465 APIO2018选圆圈(KD-Tree+堆)
- MT【198】连乘积放缩