Extjs4 Extjs 4中的网格面板滚动条不工作

Extjs4 Extjs 4中的网格面板滚动条不工作,extjs4,Extjs4,}) 嗨,我在Extjs4.0.2a中为网格面板使用上述代码,当我在存储中动态填充数据时,滚动条不工作。 我也尝试过在网格面板中使用doLayout(),但也不起作用。 网格面板位于窗口中 有什么能解决这个问题的吗 实际上,它可以工作一段时间,但不能一直工作。我也有同样的问题。他们使用定制的滚动条,而且它很有缺陷(特别是在chrome中)。如果您不打算使用无限滚动,可能的解决方案是删除自定义滚动条并使用本机滚动条。为此,只需将以下内容添加到网格的配置中: var gusersPanel = Ex

})

嗨,我在Extjs4.0.2a中为网格面板使用上述代码,当我在存储中动态填充数据时,滚动条不工作。 我也尝试过在网格面板中使用doLayout(),但也不起作用。 网格面板位于窗口中

有什么能解决这个问题的吗


实际上,它可以工作一段时间,但不能一直工作。

我也有同样的问题。他们使用定制的滚动条,而且它很有缺陷(特别是在chrome中)。如果您不打算使用无限滚动,可能的解决方案是删除自定义滚动条并使用本机滚动条。为此,只需将以下内容添加到网格的配置中:

var gusersPanel = Ext.create('Ext.grid.Panel', {
    flex:1,
    columns: [{
        header: 'User Login',
        dataIndex: 'user_login',
        width:150
    },{
        header: 'User Name',
        dataIndex: 'user_nicename',
        width:150
    },{
        header:'Privledge',
        dataIndex:'admin',
        width:150
    }],
    autoScroll: true,
    layout:'fit',
    selModel: gusersSel,
    store: gusersStore

当我从存储区添加和删除数据时,我执行了gusersPanel.determinateScrollbars(),它工作正常。

问题是,在afterrender事件中,滚动侦听器附加到了div元素,但是如果在布局操作后不需要滚动条,则会从dom中删除div元素。然后,当再次需要它时,它会被添加回来,但只有在经过足够的时间后,垃圾收集才会使extjs重新创建div节点,而这次它会被添加到dom中,而不会再次附加滚动侦听器。以下代码解决了该问题:

var gusersPanel = Ext.create('Ext.grid.Panel', {
  scroll          : false,
  viewConfig      : {
    style           : { overflow: 'auto', overflowX: 'hidden' }
  },
  // ...
});

您为布局编写了代码:“fit”。它无法自动滚动

将代码更改为某个高度并删除布局:“适合”代码

像这样

Ext.override(Ext.grid.Scroller, {
    onAdded: function() {
        this.callParent(arguments);
        var me = this;
        if (me.scrollEl) {
            me.mun(me.scrollEl, 'scroll', me.onElScroll, me);
            me.mon(me.scrollEl, 'scroll', me.onElScroll, me);
        }
    }
});

这对你很有帮助。干杯。

当我从存储添加和删除数据时,我执行了gusersPanel.DetermineseScrollBars(),它工作正常。当我从存储添加和删除数据时,我执行了gusersPanel.DetermineseScrollBars(),它工作正常。感谢您的回答此解决方案非常无用,因为它会破坏其他网格功能。@ArturBodera,您有更好的解决方案吗?抱歉,没有。我已经尝试了每一种解决方案,并尝试了每一种可用的API方法来修复滚动条,一旦滚动条锁定,没有任何帮助,这意味着您必须拆除整个组件并重新创建它。我为4.1祈祷,因为它会转储虚拟滚动。不幸的是,4.1到今天(2012年4月4日)的bug太多了。在我的例子中,当这个“onAdded”函数被称为“me.Scroller”时是未定义的,所以它对我不起作用,你知道为什么吗?Ext.grid.Scroller存在于4.0中,但它不存在于4.1中:|你对extjs 4.1+有同样的问题吗?
var gusersPanel = Ext.create('Ext.grid.Panel', {
    flex:1,
    columns: [{
   ...........
    }],
autoScroll: true,
//layout:'fit',
height: 130,
selModel: gusersSel,
store: gusersStore