获取顶部容器组件的问题.Extjs



当我点击树记录时,我会尝试设置值​​并设置这些值​​形式。

在事件中触发cleritemclick: this.showDataFields功能:

....
showDataFields: function(view, record, item, index, event) {
//got a form with fields
var panel = view.up('maintab');
console.log(panel)
//var formfield   = panel.down('actionform');
//assign values from selected record to form fields
//formfield.loadRecord(record);
},
..........

在该函数中,view.up ('maintab')的填充不足。

maintab是容纳树的Ext.tab.Panel

为什么不能得到最上面的容器,以及如何正确地做到这一点?

以小提琴为例

感谢

您应该在showDataFields函数中使用view.up('treepanel').nextSibling().getForm().setValues(record.data)来设置这些值​​形式。

您本可以提供一个更好的例子,因此在所提出的限制范围内。

我得到的答案是ActionFormTree类中的更改,得到了以下代码:

Ext.define('Fiddle.view.ActionFormTree', {
extend: 'Ext.form.Panel',
alias: 'widget.actionformtree',
xtype: 'actionform',//mainform,
initComponent: function(){
var me = this;
Ext.apply(me,{
items: [{
xtype: 'form',
border: false,
anchor: '100%',
height: 100,
layout: {
type: 'vbox',
align: 'middle',
pack: 'center'
},
items: [{
xtype: 'textfield',
name: 'text',
fieldLabel: 'Наименование',
itemId: 'name_field',
}, {
xtype: 'textfield',
name: 'code',
fieldLabel: 'Код',
itemId: 'code_field',
}]
}],
buttons: [{
text: 'Save Changes',
scope: me,
handler: function (button) {
//Эта панель со значениями полей
form   = me.down('form');
var mainpanel = me.up('#maincontainer');
var treeform   = mainpanel.down('usertree');
var sel = treeform.getSelectionModel().getSelection()[0];
store = treeform.getStore();
console.log(treeform)
store.suspendAutoSync()
var child = sel.set({
text: 'Измененное',
leaf: true
});
sel.expand()
store.resumeAutoSync();
//var currRecord = form.getRecord();
//if (currRecord) {
//    form.updateRecord();
//   form.reset();
//}
}
}]            
});
me.callParent(arguments);
}
});

因此,在本例中,要使其工作,您需要选择一个节点才能工作

希望它能帮助你完成你的问题。

样本到您的代码

最新更新