借助于 tpl 模板属性,可以将 grid 渲染到 combo 中去:
创建 grid:没什么可写的 略去……
创建 combo:
var store = new Ext.data.JsonStore({
url: '/XSR/fl/contractManagerAction.do?
method=getCodeIndexCombox',
fields: ['CODE','NAME'],
totalProperty : 'totalProperty',
root:'dataList'
//autoLoad:true //自动加载数据
});
store.load({
params:{start:0,limit:5}
});
var combo = new Ext.form.ComboBox({
store:store,
//displayField:'NAME',
//valueField:'CODE',
mode:'local',
triggerAction:'all',
minListWidth:document.body.clientWidth*0.6+6,
renderTo:'sexDiv',
tpl:'<tpl> <div id="qualityAgreeGrid"></div></tpl> ', //
在每个下拉表后添加人
listeners:{
'expand':function(){
Ext.getCmp("qualityAgreeGrid").render("qualityAgreeGrid");
}
}
});
tpl 在 combo 下创建一个 div,然后在下拉表展开的时候将 grid 渲染到 div 中去。
tpl 只负责创建一个空的 div。
由此可以看到 ext 在生成 combo 的 html 时,会优先考虑 tpl。
注意:既然我们在 combo 下渲染 tpl,不需要原来的数据了,但是为什么还必须要有