把DataTable 转换成Json格式,适用于EasyUI 绑定DataGrid

本文转载:http://www.cnblogs.com/liang--liang/archive/2013/02/05/2893030.html

public static string DataTable2Json(System.Data.DataTable dt)
        {
            System.Text.StringBuilder jsonBuilder = new System.Text.StringBuilder();
            jsonBuilder.Append("{");
            jsonBuilder.AppendFormat("\"total\":{0}, ", dt.Rows.Count);
            jsonBuilder.Append("\"rows\":[ ");
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                jsonBuilder.Append("{");
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    jsonBuilder.Append("\"");
                    jsonBuilder.Append(dt.Columns[j].ColumnName);
                    jsonBuilder.Append("\":\"");
                    jsonBuilder.Append(dt.Rows[i][j].ToString());
                    jsonBuilder.Append("\",");
                }
                jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                jsonBuilder.Append("},");
            }
            jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
            jsonBuilder.Append("]");
            jsonBuilder.Append("}");
            return jsonBuilder.ToString();
        }

  本文学习中使用的:

  int pagNum = int.Parse(Request["page"].ToString());
            int pageSize = int.Parse(Request["rows"].ToString());
            string jsonStr = string.Empty;
            UserInfoDataContextDataContext dbContext = new UserInfoDataContextDataContext("server=.;database=NorthWind;uid=sa;pwd=123456");
            var userInfoLst = dbContext.UserInfo.Take(pageSize * pagNum).Skip((pagNum - 1) * pageSize).Select(s => s);
            jsonStr = JsonHelper.ToJson(userInfoLst);
            System.Text.StringBuilder jsonBuilder = new System.Text.StringBuilder();
            jsonBuilder.Append("{");
            jsonBuilder.AppendFormat("\"total\":{0}, ", dbContext.UserInfo.Count());
            jsonBuilder.Append("\"rows\":");
            jsonBuilder.AppendFormat("{0}", jsonStr);
            jsonBuilder.Append("}");
            return Content(jsonBuilder.ToString());

  JsonHelp代码段:

    /// <summary>
    /// Json数据转换封装
    /// </summary>
    public static class JsonHelper
    {
        public static String ToJson(object obj)
        {
            return Newtonsoft.Json.JsonConvert.SerializeObject(obj);
        }
   }

  注意返回的Json格式,否则会导致datagrid不会显示数据的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏哲学驱动设计

090603 T LINQ的一个小问题

string strCityId = condition.CityId.ToString(); string startChar = strCityId + "...

20390
来自专栏跟着阿笨一起玩NET

ASP.NET常用导出Excel方法汇总

本文转载:http://mattberseth.com/blog/2007/04/export_gridview_to_excel_1.html

80420
来自专栏技术之路

Linq 和DefaultView两种方法去掉DataTable 里的重复行

在做项目的时候经常会遇到DataTable 里的数据重复,或者合并两个DataTable后有数据重复 一般我们是想把重复的删除掉,还有其它的方式实现比如用Lin...

20160
来自专栏liulun

WEB项目后端跨域请求

using System; using System.Collections.Generic; using System.IO; using System.Li...

208100
来自专栏c#开发者

遍列schema代码

Code class XmlSchemaTraverseExample {     static void Main()     {         ...

36050
来自专栏技术之路

c#时间总结

C#里内置的DateTime基本上都可以实现这些功能,巧用DateTime会使你处理这些事来变轻松多了 今天 DateTime.Now.Date.ToShort...

222100
来自专栏vue

.net里面的字典Dictionary

10820
来自专栏hbbliyong

排序含有数字的字符串:一个巧妙地方法

using System; using System.Collections.Generic; class Program { static voi...

29240
来自专栏*坤的Blog

hdu1000

16230
来自专栏.net core新时代

List,DataTable实现行转列的通用方案

  最近在做报表统计方面的需求,涉及到行转列报表。根据以往经验使用SQL可以比较容易完成,这次决定挑战一下直接通过代码方式完成行转列。期间遇到几个问题和用到的新...

24970

扫码关注云+社区

领取腾讯云代金券