在jqgrid中,第一页未定义rowobject值,下一页返回rowObject值

时间:2018-08-10 07:13:44

标签: javascript php jquery jqgrid

在jqgrid-4.8中,如果我使用rowObject,则在第一页中获得rowObject.name的值未定义,而在下一页中接收到的值。如果我使用rowObject[0],则rowObject的值是从第一页的单元格中获取的,而不是从后续页面中的单元格获取的。请帮助解决此问题。

 {name:'snp',index:'snp', width:100, align:"center"},
 {name:'chr',index:'chr', width:100, align:"center"},
 {name:'pos',index:'pos', width:100, align:"center"},
 {name:'calls',index:'calls',width:120,align:"center",sortable:false,formatter:function(cellvalue, options, rowObject){ return '<a href="http://localhost/var/sub1.php?id='+rowObject.snp+'&chr='+rowObject.chr+'&pos='+rowObject.pos+'" target="_blank"><font color="0000FF">view</a>';} }

如果我使用rowObject[0]rowObject[1]也不完全起作用,则它在第一页上起作用,而不在下一页上起作用。它显示单元格值未定义

1 个答案:

答案 0 :(得分:0)

您描述的问题是旧的。如果使用项目数组作为输入数据,则旧版本的jqGrid很难编写自定义格式程序,在该格式程序中,您必须从另一列访问数据。 the old answer中描述的简单技巧可以编写相应的代码。最好不要使用$.isArray方法来代替Array.isArray

如果使用免费的jqGrid,则可以更轻松地解决问题。我没有更改自定义格式化程序的3-d参数(rowObject)的格式,但是我将rowData属性添加到了options选项中,并带有 named 数据。因此,您可以在免费的jqGrid中使用以下代码:

formatter: function (cellvalue, options) {
    var item = options.rowData;
    return '<a href="http://localhost/var/sub1.php?id=' + 
        item.snp + '&chr=' + item.chr + '&pos=' + item.pos +
        '" target="_blank"><font color="0000FF">view</a>';
}

此外,我强烈建议您使用免费版本的jqGrid的最新版本(4.15.4或可能是4.15.5),而不要使用不支持的复古版本4.8。​​