簡體   English   中英

Extjs禁用本機網格滾動

[英]Extjs disable native grid scroll

我的extjs版本是4.0.2a。 有時網格中的垂直滾動條停止工作。 這是常見的問題。 我找到了一些解決方案,但它們對我不起作用:

this.Grid.hideVerticalScroller();
this.Grid.initVerticalScroller();
this.Grid.update();
this.Grid.determineScrollbars();
this.Grid.forceComponentLayout();
this.Grid.doComponentLayout();

我也嘗試過滾動:false,但它也沒有用,並且我的瀏覽器停止響應。 我想,我可以禁用extjs網格滾動條並添加瀏覽器標准滾動條(溢出:自動),但我不知道如何。 有什么建議么?


PS我不能使用另一個版本Extjs,因為有一個非常大的工作項目,在一些核心文件中有一些修復。 使用Extjs的新版本完成所有工作將非常困難

這是我在4.0.7中使用的“修復”; 它可能適用於4.0.2。 代碼不是我的,我從sencha.com論壇上拿了它:

Ext.define('Ext.ux.grid.Panel', {
    extend: 'Ext.grid.Panel',

    initComponent: function() {
        var me = this;

        me.callParent(arguments);

        me.on('scrollershow', function(scroller) {
          if (scroller && scroller.scrollEl) {
            scroller.clearManagedListeners(); 
            scroller.mon(scroller.scrollEl, 'scroll', scroller.onElScroll, scroller); 
          }
        });
    },

    onViewRefresh: function() {
        var me = this;

        try {
            me.callParent();
        }
        catch (e) {};
    }
});

使用Ext.ux.grid.Panel而不是Ext.grid.Panel繼承您的Grid類。 它不能完全解決問題,但會大大降低該特定錯誤的可見性。

在旁注中,我建議你咬緊牙關並升級到4.1.1,根據我的經驗,這是非常值得的。 首先從核心中刪除自定義修復程序; 您可以將它們重構為覆蓋核心類的單獨類。 在那之后,它會變得更容易。 我知道,我也經歷過這一切。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM