2011-05-19 64 views
8

我正在使用基於可編輯網格示例的Extjs 4的網格組件。我想有一個鏈接與每個單元格關聯,以便當我單擊一個單元格時,它會將我帶到另一個頁面。但是,當點擊鏈接時頁面上出現了一個垂直滾動。如何防止點擊單元格時滾動extjs網格?

例如嘗試減小http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/cell-editing.html的大小,網格上的第一次單擊會滾動頁面,以使網格位於中心並且吞噬事件。您必須再次單擊才能註冊單元格事件。這隻發生在IE中(我正在使用版本8)。好消息是,這不會發生在其他瀏覽器,這可能是一個錯誤,有沒有辦法阻止這種第一次滾動行爲發生?

感謝

+1

我在Chrome 12和ExtJS的4.0.2得到了同樣的問題。它只發生在網格高於頁面時。 – finnsson 2011-07-19 12:22:12

回答

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

這適用於我: 不工作> http://stackoverflow.com/questions/3784014/grid-scrolls-to-top-when-any-row-is-clicked-in-e-xt-js >不工作: https://www.sencha.com/forum/showthread.php?133983-How-to-prevent-extjs-grid-from-scrolling-when-clicking-on-a-cell – RAY 2015-11-16 02:56:26

2

我今天4.2有同樣的問題,ExtJS的和早期的解決方案不適合我,使用網格面板上的這個配置完全解決了這個問題:

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() 
}); 
相關問題