से एक फॉर्मपेल का निर्माण कर रहा हूं, मैं डेटास्टोर रिकॉर्ड से एक ExtJs FormPanel को गतिशील रूप से पॉप्युलेट करने की कोशिश कर रहा हूं। जब उपयोगकर्ता ग्रिडपैनल में एक पंक्ति पर क्लिक करता है, तो बिल्डफॉर्म विधि को कॉल किया जाता है और क्लिक किए गए रिकॉर्ड को पहले तर्क के रूप में भेजा जाता है।ExtJs गतिशील रूप से एक डेटास्टोर रिकॉर्ड
नीचे कोड (जब डीबगिंग) काम करता प्रतीत होता है, लेकिन doLayout विधि का कोई प्रभाव नहीं पड़ता है।
क्या कोई मुझे सही दिशा में इंगित कर सकता है?
mymodule = Ext.extend(Ext.FormPanel, {
forceLayout: true,
initComponent: function() {
Ext.applyIf(this, {
id: Ext.id(),
labelWidth: 75,
defaultType: 'textfield',
items: [{
layout: 'form',
items: [{
fieldLabel: 'test',
xtype: 'textfield'
}, {
fieldLabel: 'test',
xtype: 'textfield'
}]
}]
});
mymodule.superclass.initComponent.call(this);
},
buildForm: function (record, c) {
var form = this.getForm();
var formItems = new Ext.util.MixedCollection();
Ext.each(record.fields.items, function (item) {
formItems.add(new Ext.form.TextField({
labelStyle: 'width:100px',
fieldLabel: item.name,
name: item.dataIndex,
id: 'field-' + item.name
}));
}, this);
form.items = formItems;
this.doLayout(false, true);
form.loadRecord(record);
}
});
धन्यवाद,:
तो आप इस प्रयास करना चाहें? जैसा कि मुझे फॉर्म को पहले – Dve
को साफ़ करने की आवश्यकता है, आप फ़ॉर्म से घटकों को हटाने के लिए 'निकालें() 'या' removeAll() 'विधियों का उपयोग कर सकते हैं –