【发布时间】:2010-12-20 00:28:04
【问题描述】:
带有 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 那么为什么我现在得到这个 Object 呢?
【问题讨论】:
标签: javascript jquery jqgrid