有没有办法在Trigger Field点击时实现组件弹出窗口?例如,我有一个Trigger Field,当我点击Triggerfield时我想显示一个Tree Grid。当我从树网格中选择一个值时,触发字段也设置相同的值。 Ext.Net中有一个与此类似的例子:http://examples.ext.net/#/Form/DropDownField/Overview/
我使用Sencha Arhitect 3和ExtJS 4.2。任何帮助表示赞赏!
答案 0 :(得分:5)
试试这个。
Ext.create('Ext.form.ComboBox', {
store: Ext.create('Ext.data.Store', {
fields: ['group_name', 'property'],
data: [{
"group_name": "Armed Clash",
"property": "Border Clash"
}, {
"group_name": "Armed Clash",
"property": "Militia Clash"
}, {
"group_name": "Smuggling",
"property": "Fuel"
}, {
"group_name": "Smuggling",
"property": "Humans"
}]
}),
listConfig: {
tpl: Ext.create('Ext.XTemplate',
'<ul><tpl for=".">',
'<tpl if={group_name}>',
'<tpl if="xindex == 1 || this.getGroupStr(parent[xindex - 2]) != this.getGroupStr(values)">',
'<li class="x-combo-list-group"><b>{[this.getGroupStr(values)]}</b></li>',
'</tpl>',
'</tpl>',
'<li role="option" class="x-boundlist-item" style="padding-left: 12px">{property}</li>',
'</tpl>' +
'</ul>', {
getGroupStr: function (values) {
return values.group_name
}
}
)
},
queryMode: 'local',
valueField: 'property',
displayField: 'property',
renderTo: Ext.getBody()
});
使用js使列表可折叠,并使用样式添加图标。 可以参考这个小提琴http://jsfiddle.net/gilsha/82TzM/1/
或者使用Ext.ux.TreeCombo,小提琴:http://jsfiddle.net/gilsha/ZvnaM/83/
答案 1 :(得分:1)
如果我是你,我首先考虑使用一些现有的组件。
Base Treepicker在ExtJS框架中作为捆绑扩展存在 - Ext.ux.TreePicker
treepicker的另一个有用实现是用户扩展Ext.ux.TreeCombo
如果你想创建自己的选择器组件,它应该从Ext.form.field.Picker
延伸
如需创建自己的选择器,您可以查看Ext.ux.TreePicker
或Ext.picker.Date
组件的源代码。
答案 2 :(得分:0)
感谢大家的回答,我找到了另一种解决方案:使用createPicker
的{{1}}功能。例如,以下是我为Grid Picker扩展TriggerField的方法:
TriggerField
小提琴:https://fiddle.sencha.com/#fiddle/2fb 此自定义组件接受3 config:store,idDataIndex,nameDataIndex;所有这些都需要向网格显示数据。我认为您可以基于此扩展自己的选择器,例如Tree Grid Picker:)