在我的应用程序中,两个组件Ext.tree.Panel和Ext.form.Panel 当我单击树条目时,我需要将字段值设置为所选记录中的值。
当我单击条目时,将触发控制器中的事件处理程序功能:
...
showDataFields: function(view, record, item, index, event) {
//got a form with fields
var panel = view.up('mainpanel');
var formfield = panel.down('mainform');
//got the selected entry in the tree
sel = view.getSelectionModel().getSelection()[0];
console.log(sel)
//How to assign values from selected record to form fields?
}
...
我该怎么做? fiddle
中的示例第37行的控制器文件中的showDataFields
方法
答案 0 :(得分:2)
您可以使用loadRecord
,这将通过name
属性将您的记录数据映射到您的表单。首先检索表单,然后为其设置记录:
showDataFields: function(view, record, item, index, event) {
...
var form = panel.down('storagepaneltype');
form.loadRecord(record);
}
此外,您需要将“名称”属性从name
更改为text
,以使表单匹配记录属性。在Fiddle.view.StoragePanel
中:
items: [{
xtype: 'textfield',
name: 'text', //<-- here
fieldLabel: 'Наименование',
itemId: 'name_field',
value: '',
//bind: '{person.name}'
}
这里是FIDDLE