【问题标题】:Jqgrid datatype local loading from array从数组本地加载 Jqgrid 数据类型
【发布时间】:2012-10-25 23:51:07
【问题描述】:

在我关于如何在从本地 js var 问题asked here 刷新下划线数据后重新应用工具栏过滤器的问题中,Oleg 为我提供了一个解决方案: 1 使用 datatype:"local" 和 data:localvar 的组合。

现在我面临一个不同的问题,一周后我无法解决。

根据 Jqgrid wiki,当使用本地数据源时,默认的 localreader 看起来像

The initial configuration of the localReader is the same as those from jsonReader

localReader = {
   root: "rows",
   page: "page",
   total: "total",
   records: "records",
   repeatitems: false,
   cell: "cell",
   id: "id",
   userdata: "userdata",
   subgrid: {root:"rows", repeatitems: true, cell:"cell"}
}

我发现情况并非如此。因为在我可以使用 dataype:"local" 找到的每个示例中,它总是使用直接的 js 数组而不是 js 对象,如下所示:

var mydata = [       
{id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},   
   {id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 
{id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}];

我已经尝试使用默认的 localReader(repeatitems 设置为 true)来处理

var locObj = {"rows":[
       {"id":0,"cell":["val1","val2","val3"]},
       {"id":1,"cell":["val1","val2","val3"]}
        ],
  "page":"1",
  "total":"1",
  "records":"2"
}

与 数据类型:“本地”, 数据:locObj

这不起作用,因为它不会通过 addlocaldata 函数中的数组检查。如果我将选项更改为 数据类型:“本地”, 数据:locObj.rows

我得到了一个行数正确的网格,但每个单元格都有一个空值。我认为这是因为 addlocaldata 函数无法处理格式为 locObj.rows 的数组。

有没有办法使用自定义的 localreader 实际处理数据类型为“local”的 json 对象(或字符串)(而不必在客户端重新创建数组)?

非常感谢任何帮助。

卡比

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

    你需要做的只是使用

    data: locObj.rows,
    localReader: {repeatitems: true}
    

    the corresponding demo

    【讨论】:

    • @PavelDmitrenko:信息是问题的一部分:从数组本地加载数据类型。顺便说一句,我开发的fork free jqGrid,如果指定了data参数,则不需要datatype: 'local'。查看示例here
    猜你喜欢
    • 2011-03-11
    • 2012-11-25
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    相关资源
    最近更新 更多