2012-03-02 21 views
5

के लिए rowselection अक्षम करें मैंने extjs के साथ एक ग्रिड बनाया है 4. चयन। चेकबॉक्स मॉडल को लागू किया गया है। इसका अर्थ यह है कि जब भी आप किसी विशेष पंक्ति पर क्लिक करते हैं तो पंक्ति का चयन/चयन रद्द किया जाता है। अब मैं अंतिम चयन पर इस चयन को अक्षम करना चाहता हूं क्योंकि इसमें कस्टम बटन हैं। (यदि बटन क्लिक किया गया है तो मैं पंक्ति का चयन नहीं करना चाहता)।ExtJS 4 - ग्रिड - विशिष्ट कॉलम

कोई विचार यह कैसे करना है?

अग्रिम में बहुत धन्यवाद!

उत्तर

9

यह वास्तव में एक मुश्किल छोटी समस्या है, अगर केवल इसलिए कि सेन्चा दस्तावेज़ में कमी है।

चेकबॉक्स मॉडल में वास्तव में से प्राप्त beforeselect ईवेंट है। हालांकि, कॉलम इंडेक्स प्राप्त करने का कोई आसान तरीका नहीं है क्योंकि स्पष्ट रूप से, यह रोमोडेल का बिंदु है।

हालांकि, Ext.view.Table (जिसमें आपका ग्रिड वारिस होगा) में एक अनियंत्रित ईवेंट है, जिसे beforecellmousedown कहा जाता है।

  1. दृश्य:: यहाँ घटना पैरामीटर है सेल कि
  2. cellIndex क्लिक किया गया था: अपने ग्रिड
  3. सेल को देखते सेल के सूचकांक
  4. रिकॉर्ड: सेल
  5. के साथ संबद्ध स्टोर रिकॉर्ड
  6. पंक्ति: मानक घटना विकल्प घटना
  7. : पंक्ति
  8. eOpts सूचकांक: सेल
  9. rowIndex की पंक्ति

    viewConfig: { 
        listeners: { 
         beforecellmousedown: function(view, cell, cellIdx, record, row, rowIdx, eOpts){ 
          if(cellIdx === indexOfLastColumnInGrid){ 
           return false; 
          } 
         } 
        } 
    } 
    

    दोनों सेल और पंक्ति अनुक्रमित शून्य आधारित हैं:

तो आप शायद कुछ इस तरह की कोशिश करेंगे।

+0

धन्यवाद एरिक! मै उसे करने की एक कोशिश तो करूंगा! – user1245146

0

इस लेख को पढ़ें http://www.learnsomethings.com/2012/01/12/stopping-a-checkbox-from-allowing-select-in-an-extjs-4-grid-checkbox-column-via-the-ext-selection-checkboxmodel/ मुझे उम्मीद है कि यह आपकी मदद करेगा।

+0

प्रिय अलीकासी, आपके उत्तर के लिए धन्यवाद। – user1245146

+0

'beforeselect' के भीतर, मैं कैसे देख सकता हूं कि किस कॉलम पर क्लिक किया गया था? – user1245146

1
listeners: { 
    beforecellmousedown: function(view, cell, cellIdx, record, row, rowIdx, eOpts) { 
     if (String(eOpts.getTarget()) == '[object HTMLButtonElement]') { 
      return false; 
     } 
    } 
} 

थैंक्स एरिक। यह मैं अंतिम समाधान!