2014-01-14 1 views
0

У меня есть сетка с selType: 'checkboxmodel', но в IE есть проблема: после нажатия на строку сетки (ее выбор) прокрутите страницу до положения этой первой строки сверху.ExtJS 4, проблема в сетке с selType: checkboxmodel, после первого щелчка, прокрутите страницу вверх

Пожалуйста, помогите.

ответ

0

Найдено правильное anwser

 Ext.override(Ext.selection.CheckboxModel, { 
      onRowMouseDown: function (view, record, item, index, e) { 
       //view.el.focus(); - commented focus() 
       var me = this, 
        checker = e.getTarget('.' + Ext.baseCSSPrefix + 'grid-row-checker'), 
        mode; 
       if (!me.allowRightMouseSelection(e)) { 
        return; 
       } 
       if (me.checkOnly && !checker) { 
        return; 
       } 
       if (checker) { 
        mode = me.getSelectionMode(); 
        if (mode !== 'SINGLE') { 
         me.setSelectionMode('SIMPLE'); 
        } 
        me.selectWithEvent(record, e); 
        me.setSelectionMode(mode); 
       } else { 
        me.selectWithEvent(record, e); 
       } 
      } 
     }); 

работал для меня

0

Другое решение, которое решает основную причину проблемы для всех scenarious и выбора моделей:

Ext.override(Ext.dom.Element, { 
    focus: function (defer, dom) { 
     var me = this, 
      scrollTop, 
      body; 

     dom = dom || me.dom; 
     body = (dom.ownerDocument || DOC).body || DOC.body; 
     try { 
      if (Number(defer)) { 
       Ext.defer(me.focus, defer, me, [null, dom]); 
      } else { 
       if (dom.tagName != 'DIV') { 
        if (dom.offsetHeight > Ext.dom.Element.getViewHeight()) { 
         scrollTop = body.scrollTop; 
        } 
        dom.focus(); 
        if (scrollTop !== undefined) { 
         body.scrollTop = scrollTop; 
        } 
       } 
      } 
     } catch (e) { 
     } 
     return me; 
    } 
}); 
Смежные вопросы