2012-09-27 16 views
5

में मॉडल प्रदर्शित करें मैं एक संपत्ति ग्रिड में लगातार फ़ील्ड (मेरी मॉडल फ़ाइल में परिभाषित) प्रदर्शित करना चाहता हूं।ExtJS: Ext.grid.property.Grid

enter image description here

संपत्ति ग्रिड:

Ext.define('ATCOM.view.InspectorProperties', { 
    extend : 'Ext.grid.property.Grid', 
    alias : 'widget.inspectorProperties', 
    cls : 'property-grid', 
    height : 150, 
    listeners : { 
     beforerender : function() { 
      // Rename the first column 
      var cols = this.getView().getHeaderCt().getGridColumns(); 
      cols[0].setText("Property"); 
     }, 
     beforeedit : function(e) { 
      // Read-only 
      return false; 
     } 
    }, 
    source : {} // Start with no items 
}); 

मैं एक का चयन करें घटना में तो जैसे आइटम लोड (एक नियंत्रक में), जहां रिकॉर्ड हमारे मॉडल वस्तु और getInfo() है संपत्ति ग्रिड है :

var source = {}; 
source.id = record.get('id'); 
source.start = record.get('start'); 
source.end = record.get('end'); 

this.getInfo().setSource(source); 

मॉडल:

Ext.define('ATCOM.model.Shift', { 
    extend : 'Ext.data.Model', 
    fields : [ 'id', { 
     name : 'start', 
     type : 'date', 
    }, { 
     name : 'end', 
     type : 'date', 
    }, 'position', 'controller' ], 
    hasMany : { 
     model : 'ATCOM.model.ShiftAlloc', 
     name : 'allocations' 
    } 
}); 

वहाँ यह इतना सभी गैर साहचर्य क्षेत्र (मेरे मामले में allocations को छोड़कर) स्वचालित रूप से संपत्ति ग्रिड के लिए भेजा जाता के बारे में जाने के लिए एक बेहतर तरीका है? ATCOM.model.Shift.getFields() के साथ फ़ील्ड को पढ़ना भी संभव हो सकता है और शेष कुंजी रखने के लिए persistent:false; की जांच करने वालों पर पुन: प्रयास करना संभव है, लेकिन मैं एक उदाहरण से क्लास संदर्भ कैसे प्राप्त करूं - जैसा कि, मैं अपने उदाहरणों में से ATCOM.model.Shift कैसे प्राप्त करूं? मैं getFields() को कॉल कर सकता हूँ?

संपादित करें:

वर्ग के नाम खोजने के लिए: http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Base-static-method-getName

+0

+1 आपके कोड के लिए जो दिखाता है कि कॉलम का नाम कैसे बदलें और इसे कैसे पढ़ा जाए केवल ... अच्छा! – HDave

+0

चीयर्स, यह खोजने के लिए कुछ खुदाई लेता है: \ –

उत्तर

1

यह setSource (record.data) कहने के लिए काम कर सकते हैं। मैं अभी इस के साथ खेल रहा हूँ; ऐसा लगता है कि सही जानकारी दिखाना प्रतीत होता है, हालांकि आप संपादन के लिए कौन से फ़ील्ड को सक्षम करने के लिए फ़ील्ड के विवरण पर नियंत्रण खो सकते हैं, आदि

+0

हाँ, यहां एकमात्र समस्या यह है कि यह 'डेटा', जैसे सीएसएस क्लास, पैरेंट आईडी इत्यादि की आवश्यकता से अधिक जानकारी दिखा सकता है। –