2011-05-19 18 views
8

Attualmente sto usando il componente grid con Extjs 4 basato sull'esempio della griglia modificabile. Mi piacerebbe avere un link associato a ogni cella in modo che quando clicco su una cella mi porti in un'altra pagina. Tuttavia, quando c'è uno scorrimento verticale che viene tratteggiato sulla pagina quando si fa clic sul collegamento.Come impedire alla griglia di extjs di scorrere quando si fa clic su una cella?

ad es. prova a ridurre le dimensioni di http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/cell-editing.html, il primo clic sulla griglia scorre la pagina in modo che la griglia si trovi al centro e l'evento venga inghiottito. Devi fare nuovamente clic per registrare l'evento cellclick. Questo succede solo in IE (sto usando la versione 8). La buona notizia è che questo non accade con altri browser, potrebbe essere un bug e c'è un modo per impedire che questa prima azione di scorrimento accada?

Grazie

+1

ho avuto lo stesso problema in Chrome 12 e ExtJS 4.0.2. Succede solo quando la griglia è più alta della pagina. – finnsson

risposta

2

Prova questa patch

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

questo funziona per me: non funziona> http://stackoverflow.com/questions/3784014/grid-scrolls-to-top-when-any-row-is-clicked-in-ext-js > non funziona : https://www.sencha.com/forum/showthread.php?133983-How-to-prevent-extjs-grid-da-scrolling-when-clicking-on-a-cell – RAY

2

Ho avuto questo stesso problema con ExtJS 4.2 oggi e la le soluzioni precedenti non funzionavano per me, l'utilizzo di questa configurazione sul gridpanel ha risolto completamente il problema:

viewConfig: { 
    focusRow: Ext.emptyFn 
} 

Ad esempio:

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() 
}); 
Problemi correlati