10

私は現在、編集可能なグリッドの例に基づいて、Extjs4でグリッドコンポーネントを使用しています。セルをクリックすると別のページに移動できるように、各セルにリンクを関連付けたいと思います。ただし、リンクをクリックしたときにページ上でトリガーされる垂直スクロールがある場合。

たとえば、http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/cell-editing.htmlのサイズを小さくしてみてください。グリッドを最初にクリックすると、ページがスクロールしてグリッドがセンターとイベントが飲み込まれます。cellclickイベントを登録するには、もう一度クリックする必要があります。これはIEでのみ発生します(私はバージョン8を使用しています)。幸いなことに、これは他のブラウザでは発生しません。これはバグである可能性があり、この最初のスクロールアクションが発生しないようにする方法はありますか?

ありがとう

4

4 に答える 4

12

私は同じ問題を抱えていて、Senchaディスカッション掲示板で解決策を見つけました。

このコードを追加することは私にとってはうまくいきました:

selModel: Ext.create('Ext.selection.Model', { listeners: {} }),

詳細: http ://www.sencha.com/forum/showthread.php?133983-How-to-prevent-extjs-grid-from-scrolling-when-clicking-on-a-cell

于 2011-09-13T16:13:48.433 に答える
2

このパッチを試してください

Ext.override(Ext.selection.RowModel, {
    onRowMouseDown: function(view, record, item, index, e) {
        //IE fix: set focus to the first DIV in selected row
        Ext.get(item).down('div').focus();

        if (!this.allowRightMouseSelection(e)) {
            return;
        }

        this.selectWithEvent(record, e);
    }
});
于 2012-03-19T10:27:30.120 に答える
2

今日、ExtJS 4.2でも同じ問題が発生しましたが、以前のソリューションは機能していませんでした。グリッドパネルでこの構成を使用すると、問題が完全に処理されました。

viewConfig: {
    focusRow: Ext.emptyFn
}

例えば:

Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    store: Ext.data.StoreManager.lookup('simpsonsStore'),
    viewConfig: {
        focusRow: Ext.emptyFn
    }
    columns: [
        { text: 'Name',  dataIndex: 'name' },
        { text: 'Email', dataIndex: 'email', flex: 1 },
        { text: 'Phone', dataIndex: 'phone' }
    ],
    height: 200,
    width: 400,
    renderTo: Ext.getBody()
});
于 2015-09-10T06:54:51.397 に答える
1

これは、この問題に似ている可能性があります。IE7では、グリッドを最初にクリックすると、ExtJS Ext.grid.GridPanelがページの上部にジャンプし、 グリッドの周りのコンテナーでposition:relative;zoom:1を試してhasLayoutを指定します。

于 2011-05-19T16:18:20.547 に答える