我遇到的问题非常类似于以下问题:https://stackoverflow.com/questions/21374716/jqgrid-not-loading-data-on-scroll。
JQgrid' populateVisible'函数永远不会执行网格的填充方法(也许它不会认为要填充的项目是可见的,因为某些IE不一致)。
我会在下面粘贴以下函数的片段:
populateVisible: function() {
var dh = $(grid.bDiv).height();
var table = $("table:first", grid.bDiv);
....
var tbot = ttop + table.height();
....
var page, npage, empty;
if ( tbot < dh && ttop <= 0 &&
(p.lastpage===undefined||parseInt((tbot + scrollTop + div - 1) / div,10) <= p.lastpage))
{
npage = parseInt((dh - tbot + div - 1) / div,10);
if (tbot >= 0 || npage < 2 || p.scroll === true) {
page = Math.round((tbot + scrollTop) / div) + 1;
ttop = -1;
} else {
ttop = 1;
}
}
....
if (npage) {
if (p.lastpage && page > p.lastpage || p.lastpage==1 || (page === p.page && page===p.lastpage) ) {
return;
}
if (grid.hDiv.loading) {
grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);
} else {
p.page = page;
if (empty) {
grid.selectionPreserver(table[0]);
grid.emptyRows.call(table[0], false, false);
}
grid.populate(npage);
}
}
}
问题在于&#34; tbot&lt; DH&#34;因为两者都等于562,所以评估为假。我想知道为什么这些在IE中是相等的。似乎IE认为表的底部总是表Div(562)的大小。如何解决这个问题并获取设置npage和页面在IE中执行的代码?
由于tbot = 541和dh = 562,因此Chrome似乎运行良好。
由于永远不会设置npage,因此无法执行包含&#39; grid.populate()&#39;的代码段。
有没有人对此问题有任何意见?
编辑:删除了许多对问题上下文不必要的代码。请参阅此处了解整个功能:https://github.com/tonytomov/jqGrid/blob/master/js/grid.base.js#L948