jqGrid没有在滚动上加载数据(Internet Explorer)

时间:2014-07-07 18:21:35

标签: javascript jquery ajax internet-explorer jqgrid

我遇到的问题非常类似于以下问题: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

0 个答案:

没有答案