用ExtJS的ComboBox做下拉列表的时候,发现一个很奇怪的问题,
当你setValue的时候,第一次是不会显示display的值。
[code="js"]function getMailTypeComboBox(){
var mailTypeComboBox = null;
if (!mailTypeStore){
mailTypeStore = new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({url: "mailTypeJson!list.action"}),
reader: new Ext.data.JsonReader({
root: "root",
totalProperty: "totalProperty"
}, [
{name: 'categoryId'},
{name: 'mailHandle'},
{name: 'handleName'},
{name: 'registration'}
])
}
});
}
mailTypeStore.load({params:{limit:10,start:0}});
if (!mailTypeComboBox){
mailTypeComboBox = new Ext.form.ComboBox({
id: "typeID",
fieldLabel: '邮件类型',
hiddenName: 'categoryId',
store: mailTypeStore,
valueField: 'categoryId',
displayField: 'handleName',
typeAhead: true,
readOnly: true,
mode: 'local',
triggerAction: 'all',
blankText: '请选择邮件类型...',
emptyText: '请选择...',
selectOnFocus: true,
width: 200
});
}
return mailTypeComboBox;
}
一直搞不明白为什么,网上找了很久也没有答案,跟同事研究了一段时间也得不到结果
后来还是同事找了一个博文,增加一个监听器就好了
(http://www.cnblogs.com/simonhaninmelbourne/archive/2009/03/06/1404347.html)
修改后的代码
[code="js"]function getMailTypeComboBox(){
var mailTypeComboBox = null;
if (!mailTypeStore){
mailTypeStore = new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({url: "mailTypeJson!list.action"}),
reader: new Ext.data.JsonReader({
root: "root",
totalProperty: "totalProperty"
}, [
{name: 'categoryId'},
{name: 'mailHandle'},
{name: 'handleName'},
{name: 'registration'}
]),
listeners: {
load: function() {
mailTypeComboBox.setValue(mailTypeComboBox.getValue());
}
}
});
}
mailTypeStore.load({params:{limit:10,start:0}});
if (!mailTypeComboBox){
mailTypeComboBox = new Ext.form.ComboBox({
id: "typeID",
fieldLabel: '邮件类型',
hiddenName: 'categoryId',
store: mailTypeStore,
valueField: 'categoryId',
displayField: 'handleName',
typeAhead: true,
readOnly: true,
mode: 'local',
triggerAction: 'all',
blankText: '请选择邮件类型...',
emptyText: '请选择...',
selectOnFocus: true,
width: 200
});
}
return mailTypeComboBox;
}
增加的监听器
listeners: {
load: function() {
mailTypeComboBox.setValue(mailTypeComboBox.getValue());
}
}
分享到:
相关推荐
extjs editgrid combobox 回显extjs editgrid combobox 回显extjs editgrid combobox 回显extjs editgrid combobox 回显
extjs 自动补全,模拟下拉列表combobox
extJs4 ComboBox 代码组合框实例,ComboBox 各个主要参数详细解释
NULL 博文链接:https://dengli19881102.iteye.com/blog/1046190
EXTJS的COMBOBOX级联实现和数据提交VALUE[文].pdf
Combobox二级联动列子 Combobox二级联动列子 Combobox二级联动列子 Combobox二级联动列子 Combobox二级联动列子 Combobox二级联动列子
extjs4 ComboBox 点击下拉框 出现grid效果 这里只实现了点击下拉框显示gird,点击其他地方grid自动消失
Extjs4下拉菜单中用Grid显示,有单选,和多选两个控件,完美通用代码控件,绝对让你好用,值得收藏^-^
Extjs4---combobox联动实例
该资源主要展示了在Extjs6中Combobox控件实现下拉选择多个数据的功能
首先在窗体中添加一个comboBox1和一个imageList(本例中带有三个图片) this.comboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
Extjs3.4.0版本 多选下拉框效果支持多选/全选/全不选, 附源码。 修复不能多选问题,代码仅供参考
extjs的combobox功能很强大,通过它可以模糊查询,只要添加几个属性即可,网上找的代码有的不符合我的要求。 所以自己改了一些代码。
代码看起来简洁又漂亮是如何做到的,这篇文章主要为大家详细介绍了Extjs如何让combobox写起来更简单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
NULL 博文链接:https://mawj0326-163-com.iteye.com/blog/1628470
extjs 进度条的显示
为了解决这个问题需要在EditorGridPanel的ColumnModel中显示ComboBox的地方使用renderer属性,重新渲染,方法如下: 代码如下: //部门列表 var comboxDepartmentStore = new Ext.data.Store({ proxy: new Ext.data....
当需要为ComboBox加载数据后进行赋初始选中项的话,如果是写在store.load()之后
NULL 博文链接:https://wwwzhouhui.iteye.com/blog/701745
第一讲.ExtJs初识及其环境搭建 第二讲.开始ExtJs梦想之旅 第三讲.ExtJS工具栏、菜单栏 第四讲.ExtJS最常用的表单之textfield控件 第五讲.ExtJs最常用表单组件Number、CheckBox、Radio 第六讲.ExtJs最常用表单...