EXT Grid在重新加载时挂起

时间:2011-02-23 14:14:15

标签: gridview extjs

使用EXT网格显示实时数据。网格每秒刷新一次。它在每次刷新时都滚动到顶部,直到我覆盖了scrollToTop函数。

Ext.override(Ext.grid.GridView, { 
    scrollToTop: Ext.emptyFn
});

然而,它仍然会挂起(阻止滚动)非常重要的时间。我怎样才能摆脱困境?

2 个答案:

答案 0 :(得分:1)

显然,网格将花费一些非常重要的时间来渲染400行数据。您可以尝试通过使网格标记尽可能轻(无花哨的渲染器等)来减少渲染工作量,但最好的选择可能是等待ExtJS version 4(据称提供a huge boost to grid performance) ,或者如果您愿意使用插件,请查看Ext.ux.Livegrid

答案 1 :(得分:0)

就像这样:

function OrderInfoLoad() {
    var scrollTop = Efs.getExt("ordergrid").getView().scroller.dom.scrollTop;
    var scrollHeight = Efs.getExt("ordergrid").getView().scroller.dom.scrollHeight;
    Efs.Common.ajax("../sysadmin/baseRefWeb.aspx?method=CarManage_Order&pid=0", "", function (succ, response, options) {
        if (succ) { // 是否成功
            var xmlReturnDoc = response.responseXML;
            Efs.getExt("ordergrid").getStore().loadData(xmlReturnDoc);
            Efs.getExt("ordergrid").getView().scroller.dom.scrollTop = scrollTop
                        + (scrollTop == 0
                                ? 0
                                : Efs.getExt("ordergrid").getView().scroller.dom.scrollHeight
                                        - scrollHeight);
        }

    });
}

你应该记住滚动并重新加载它。