2012-10-25 28 views
2

在我的问题关于如何重新应用工具栏过滤器后下划线数据刷新本地js var问题asked here,奥列格提供了一个解决方案: 1使用数据类型的组合: “本地”和数据:localvar。Jqgrid数据类型从数组本地加载

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

使用本地数据源默认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"} 
} 

我发现这个情况并非如此,当按照jqGrid的维基。因为,我可以找到使用dataype每一个例子:“本地”,它总是使用直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对象(或字符串)?

任何帮助,非常感谢。

Casbby

回答