ITPub博客

首页 > Linux操作系统 > Linux操作系统 > .net下使用jqgrid

.net下使用jqgrid

原创 Linux操作系统 作者:elanglee 时间:2009-04-09 08:36:50 0 删除 编辑

    jqgrid,一个不错的网格插件,基于jquery框架,封装的比较好,数据上支持XML、Json以及数组。通过jqgrid你可以轻而易举的实现网格控件内数据的排序、分页、打印等等你想实现的功能。

    看上去很美,但是实际使用中还是出现一些问题。本地数组形式可以绑定数据,但是用到Json异步传输时总是无法进行数据绑定。怎么办?开发周期压紧,只好在前台先用Json转成数组再进行数据绑定。虽然功能实现了但是心有余悸,仔细翻看jqgrid的介绍发现其对Json格式有严格要求!

json格式:

{ total: xxx, page: yyy, records: zzz, rows: [
{id:”1″,cell:[”Row 1:1″,”Row 1:2″,”Row 1:3″,”Row 1:4″]},
{id:”2″,cell:[”Row 2:1″,”Row 2:2″,”Row 2:3″,”Row 2:4″]},
{id:”3″,cell:[”Row 3:1″,”Row 3:2″,”Row 3:3″,”Row 3:4″]},
…]}
 一般的形式还真好用,哈哈,难怪无法绑定。于是按照上面的格式又写了一个专用方法,OK了!

public  string JsonForJqgrid(DataTable dt)
  {
   StringBuilder jsonBuilder = new StringBuilder();
   jsonBuilder.Append("{");
   jsonBuilder.Append("total:5,page:1,records:" + dt.Rows.Count + ",rows");
   jsonBuilder.Append(":[");
   for (int i = 0; i < dt.Rows.Count; i++)
   {
    jsonBuilder.Append("{");
    jsonBuilder.Append("id:\""+Convert.ToString(i+1)+"\",cell");
    jsonBuilder.Append(":[");
    for (int j = 0; j < dt.Columns.Count; j++)
    {                    
     jsonBuilder.Append("\"");
     jsonBuilder.Append(dt.Rows[i][j].ToString());
     jsonBuilder.Append("\",");      
    }
    
    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
    jsonBuilder.Append("]");
    jsonBuilder.Append("},");
   }
   jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
   jsonBuilder.Append("]");
   jsonBuilder.Append("}");
   return jsonBuilder.ToString();       
  }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7383074/viewspace-586810/,如需转载,请注明出处,否则将追究法律责任。

上一篇: ASP.net MVC和jqGrid
下一篇: jqgrid中文问题
请登录后发表评论 登录
全部评论

注册时间:2008-10-10

  • 博文量
    49
  • 访问量
    140257