在这里,Sencha团队解释了如何建立一对多关系:
http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.Store
你在这里得到更详细的信息:
http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.reader.Reader
他们在那里解释
“这可能需要考虑很多 - 基本上用户有很多订单,每个订单 其中包含几个OrderItems。最后,每个OrderItem 有一个产品。“
尼斯。
现在我想要一个Form,其中有用户信息PLUS用户命令的网格(不是MVC框架,只是form.Panel
的派生类。)
我该怎么做?这是我的form.Panel
课程的开头,其中只有字段。我只想添加一个与Product
链接的数据网格。
所以我创建了我的商店,就像Sencha给出的示例一样,然后我创建了一个链接到MyFramework.form.Panel
的网格,一切正常。我只想制作类似“嵌套表”的东西,即该类中的一对多网格,以显示属于当前用户的产品。
知道怎么做吗?
Ext.define('MyFramework.form.Panel', {
extend: 'Ext.form.Panel',
alias: 'widget.writerform',
requires: ['Ext.form.field.Text'],
initComponent: function(){
this.addEvents('create');
Ext.apply(this, {
activeRecord: null,
iconCls: 'icon-user',
frame: true,
title: 'User',
defaultType: 'textfield',
bodyPadding: 5,
fieldDefaults: {
anchor: '100%',
width: 500,
labelWidth: 200,
labelAlign: 'right'
},
items: [{
xtype:'tabpanel',
activeTab: 0,
defaults:{
layout: 'fit',
bodyStyle:'padding:10px'
},
items:[{
title:'General information',
defaultType: 'textfield',
items: [{
fieldLabel: 'Titre ',
name: 'titre',
allowBlank: false
},{
fieldLabel: 'Image grande ',
name: 'imgGrande'
}]
},{
title:'Products',
defaultType: 'textfield',
items: [
/*
* Advices/example here!
* I'm stuck!
*/
]
}]
}]
});
this.callParent();
}
});
答案 0 :(得分:0)
您可以使用Dynamic Form interacting with an embbed grid的概念。
当然,这不符合您的需求。不过,我的建议是从那里开始,尝试实现一个与嵌入式网格相关的字段,在您的情况下是一个产品网格。
话虽如此,你不会有一个由嵌入网格选择填充的表单,而是一个像ComboBox一样填充的单个字段,但是通过网格选择。
也许尝试Ext.form.LookUp字段,我创建的一个与该问题有关的组件。
此组件并不完全符合您的要求,因为它适用于单个记录,例如one to one
关系。但是你可以尝试从那里实现一些东西。