用法:上述方法是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字符串
}

最新文章

  1. webform Repeater、地址栏传值、Response
  2. Nancy之Cache的简单使用
  3. Autofac.Integration.Mvc.Owin分析
  4. 一个通用的DataGridView导出Excel扩展方法(支持列数据格式化)
  5. is(C# 参考)
  6. POJ1651Multiplication Puzzle(区间DP)
  7. Android NDK 编译FFmpeg(不需要复杂的环境变量设置)
  8. Java学习之基本数据类型
  9. docker~学习笔记索引
  10. Django Push 的一些资料
  11. C# - 为引用类型重定义相等性
  12. FloatingActionButton(悬浮按钮)使用学习&lt;一&gt;
  13. 环境与工具1:微信群刷屏 | itchat
  14. 10,关于在vs2017中的netcore项目使用BundlerMinifier 配置问题
  15. poj3617 Best Cow Line(贪心,字典序问题)
  16. tornado-同步异步下载图片
  17. 一分钟了解ArrayList和Vector的区别
  18. JBMP学习引导
  19. Alpha阶段项目复审
  20. STL容器的常用用法

热门文章

  1. CocoaPods 遇到 A host target is a &quot;parent&quot; target which embeds a &quot;child&quot; target 问题解决
  2. 第一次scrum meeting
  3. ThinkPHP框架知识(比较全的知识)
  4. 第一个sprint与第二个sprint阶段总结
  5. Android-TabLayout设置内容宽度以及下划线宽度
  6. final发布简评
  7. php四排序-选择排序
  8. [转帖]MerkleDAG全面解析 一文读懂什么是默克尔有向无环图
  9. BZOJ5465 APIO2018选圆圈(KD-Tree+堆)
  10. MT【198】连乘积放缩