में मॉडल प्रदर्शित करें मैं एक संपत्ति ग्रिड में लगातार फ़ील्ड (मेरी मॉडल फ़ाइल में परिभाषित) प्रदर्शित करना चाहता हूं।ExtJS: Ext.grid.property.Grid
संपत्ति ग्रिड:
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
+1 आपके कोड के लिए जो दिखाता है कि कॉलम का नाम कैसे बदलें और इसे कैसे पढ़ा जाए केवल ... अच्छा! – HDave
चीयर्स, यह खोजने के लिए कुछ खुदाई लेता है: \ –