В IE7 первый щелчок по сетке заставляет ExtJS Ext.grid.GridPanel перейти к началу страницы.

У меня есть странная проблема с GridPanel ExtJS, питаемым массивом - только в IE7, до запуска события rowclick, когда я нажимаю на строку, страница прокручивается вверх на 2-3 строки. При повторных кликах страница прокручивается вверх, пока страница не окажется в верхней части страницы. Затем моему обработчику передаются только rowclicks. У меня только два слушателя зарегистрированы в этой сетке:

 
        listeners: {
            rowclick:function(grid, rowIndex, e) {
             ... my handler
            },
            sortchange : function(grid, rowIndex, e){}

У тебя есть идеи?


person Gerhard    schedule 13.05.2011    source источник
comment
возможный дубликат Как предотвратить сетку extjs от прокрутки при нажатии на ячейку?   -  person Bo Persson    schedule 19.03.2012


Ответы (2)


Я столкнулся с подобной ошибкой в ​​Internet Explorer 7. Для меня zoom:1; должность: родственница; на окружающем контейнере помогло принудительно установить свойство макета.

person Raj    schedule 17.05.2011
comment
Спасибо! У меня была та же проблема, что и у OP, но в Internet Explorer 8. Использование вашего CSS в родительском контейнере решило проблему, но только тогда, когда я также переключил свой код на использование события select сетки; Раньше я использовал событие itemclick, которое все еще имело такое же плохое поведение даже с CSS. Кстати, это с ExtJS 4.0.7. - person Jeff Evans; 23.01.2012

Попробуйте этот патч

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);
    }
});

На самом деле можно использовать любой «фокусируемый» элемент (tr и td — нет).

person Max Bogdanov    schedule 19.03.2012