转载:http://www.54mask.com/extjs-combobox-default-value.html
相信很多人都遇到了在ExtJS框架中设置combo组件默认值的需求,ExtJS框架并没有提供现成的配置项或者方法来解决此问题,本人认为主要是因为此种需求的应用场景有限且很难达到适应于不同场景的实现。
combo组件的设值其实很简单:
1 var getRecruitmentName = new Ext.data.JsonStore({ 2 url: '',--后台地址 3 baseParams: { method: 'GetRecruitmentName' }, 4 root: 'Table', 5 autoLoad: true, 6 fields: [ 7 { name: 'ProcInstId' }, 8 { name: 'RecruitmentName' } 9 ], 10 listeners: { 'load': function (store) { 11 var record = getRecruitmentName.getAt(0);--显示第几行 12 Ext.getCmp("Recruitment").setValue(record.get("ProcInstId")); 13 Ext.getCmp("Recruitment").setRawValue(record.get("RecruitmentName")); 14 } 15 } 16 });
即根据index获取store里面需要设置默认值的model对象,然后调用combo组件的setValue方法即可。但是选择设值的“时机”,达到“默认值”的效果,可能就显得比较复杂了。
设置默认值的需求场景一般是在Form查询表单上,提供一个默认的查询项目。多数情况下,这种需求的combobox位于tabpanel下的form中
和位于window下的form中。前者可以通过监听form的afterrender事件来实现;后者可以通过监听window的show事件来实现。
如果combobox设置默认值的需求场景很少,可以视情况在combobox组件的父容器里直接添加相关监听事件来设置默认值。如果应用场景比较多,通过插件的方式配置就比较明智了。