带有 jqgrid rowObject 的第一页结果返回预期数据,但随后返回后续结果页的不完整数据。为什么?
结果第一页:
rowObject[3] 将等于“2”
结果的后续页面:
rowObject[3] 将等于“未定义”,并且返回结果的第一页现在也将等于“未定义”。
更多细节和一些代码:
对于 jqGrid,如果您想实现自定义格式化程序,您可以使用一个名为 rowObject 的参数,其中包含行数据。例如,rowObject 的一行可能类似于:
["18", "133", "Betelguese", "3", "photo.jpg", "", "0", ""]
因此,我的自定义格式化程序使用其中一些数据来准备链接,如下所示:
var newval = '<a href="/proj/' + rowObject[3] + '/images/' + imgval + '">' + imgval + '</a>';
这给了我一个像这样的网址:
<a href="/proj/3/images/photo.jpg">photo.jpg</a>
到目前为止,一切都很好。我的问题是,当我转到 jqgrid 中的下一页结果时,我丢失了一些数据并得到:
<a href="/proj/undefined/images/photo.jpg">photo.jpg</a>
如果我加载显示所有结果的页面,则一切正常,但是如果我使用分页,则只有结果的第一页将具有 rowObject[3] 的正确值,而后续页面上的所有其他结果将不会具有该 rowObject 值!
那么为什么 rowObject 包含最初加载到网格中的正确数据,而当出现下一页网格结果时似乎会丢失该数据呢?
我在 Firebug 中看到的一件事我不明白......当页面最初加载时我得到:
console.log(rowObject);
["18", "133", "Betelguese", "3", "photo.jpg", "", "0", ""]
在结果的下一页,事情停止按我的预期工作,我看到
console.log(rowObject);
Object { photo_id="18", site_id="133", more...}
为什么要改变?第一个结果是 json 那么为什么我现在得到这个对象?