2011-05-19 14 views
8

मैं वर्तमान में संपादन योग्य ग्रिड उदाहरण के आधार पर Extjs 4 के साथ ग्रिड घटक का उपयोग कर रहा हूं। मैं प्रत्येक सेल से जुड़ा एक लिंक चाहता हूं ताकि जब मैं किसी सेल पर क्लिक करता हूं तो यह मुझे दूसरे पृष्ठ पर ले जाता है। हालांकि, जब लिंक पर क्लिक करते समय पृष्ठ पर ट्रिगर किया गया एक लंबवत स्क्रॉल होता है।सेल पर क्लिक करते समय स्क्रॉलिंग से extjs ग्रिड को कैसे रोकें?

उदा। http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/cell-editing.html के आकार को कम करने का प्रयास करें, ग्रिड पर पहला क्लिक पृष्ठ को स्क्रॉल करता है ताकि ग्रिड केंद्र पर हो और घटना निगल जाए। सेलक्लिक घटना पंजीकृत करने के लिए आपको फिर से क्लिक करना होगा। यह केवल आईई में होता है (मैं संस्करण 8 का उपयोग कर रहा हूं)। अच्छी खबर यह है कि यह अन्य ब्राउज़रों के साथ नहीं होता है, क्या यह एक बग हो सकता है और क्या यह पहली स्क्रॉलिंग कार्रवाई होने से रोकने का कोई तरीका है?

धन्यवाद

+1

मैं क्रोम 12 और ExtJS 4.0.2 में एक ही समस्या मिला है। यह तब होता है जब ग्रिड पृष्ठ से अधिक होता है। – finnsson

उत्तर

10

मैं एक ही समस्या थी और पाया देने के लिए सेन्चा चर्चा बोर्ड पर एक समाधान।

इस कोड को जोड़ा जा रहा है मेरे लिए काम किया:

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

+0

मैं अतिरिक्त 4.1.1 के साथ नोटिस करता हूं यह वेबकिट-आधारित ब्राउज़र में स्क्रॉल को रोकने के लिए काम करेगा लेकिन आईई नहीं। –

0

इस इस समस्या के समान हो सकता है: In IE7 the first click on a grid causes an ExtJS Ext.grid.GridPanel to jump to the top of the page कोशिश स्थिति: रिश्तेदार; ज़ूम: 1 ग्रिड चारों ओर कंटेनर पर यह

hasLayout
+0

दुर्भाग्यवश एक्स्टजेस डो स्नोट वर्क 3 के संस्करण 3 की तुलना में वही फिक्स लागू कर रहा है। – user465374

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-ext-js > काम नहीं : https://www.sencha.com/forum/showthread.php?133983- कैसे-to-prevent-extjs-grid-from-scrolling-when-clicking-on-a-cell – RAY

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() 
}); 
संबंधित मुद्दे