也已经写了很久时间的extjs ,每次都用到很多的combobox,配置很多东西觉得实在是太麻烦,所以根据常用到的情况写了一个简便的combobox,再次记录下来,以免放在某个地方忘记了找不到了。

定义一个基本的baseCombobox类,如下。
Ext.define('Admin.view.baseCmp.BaseCombobox', {
extend: 'Ext.form.field.ComboBox',
xtype: 'baseCombobox',
editable: false,
labelSeparator: ':',
labelWdith: 0,
triggerAction: 'all',
labelAlign: 'right',
//forceSelection: true,此属性操作时,就算去掉文字后,失去焦点后还是会选择上一次选择的记录
autoSelect: true,
selectOnfocus: true,
valueNotFoundText: '',
name:'',
queryMode: 'local',
url:'',
displayField: '',
valueField: '',
requires:['Admin.view.baseCmp.BaseComboboxController'],
controller: 'baseComboboxController',
emptyIndex:-1,//自定义属性,空值所在下标,-1则不添加
selectIndex:0,//自定义属性,自动选择下标
params:null,//自定义属性,数据参数
listeners: {
render: 'getComboData',
scope: 'controller'
},
});
Ext.define('Admin.view.baseCmp.BaseComboboxController', {
extend: 'Ext.app.ViewController',
alias: 'controller.baseComboboxController',
getComboData: function (combo) {
Ext.Ajax.request({
url: combo.url,
method :'POST',
params:combo.params,
success: function (response) {
var dataJson = Ext.decode(response.responseText);
if(dataJson.state != 200 || dataJson.data == null || dataJson.data.length == 0)
{
//服务器返回错误
return ;
}
var data = dataJson.data;
//插入“全部”选项
if(combo.emptyIndex >= 0)
{
var emp = {};
emp[combo.displayField] = "全部";
emp[combo.valueField] = "全部";
Ext.Array.insert(data,combo.emptyIndex,[emp]);
}
var store = Ext.create('Ext.data.Store', {
fields: Ext.Object.getKeys(data[0]),
data: data
});
combo.setStore(store);
//如果指定选中某个值
if(combo.selectValue != null)
{
combo.select(combo.selectValue);
}
else
{
//如果指定选中某个下标的值,-1为最后一个,> 0 则为第selectIndex个
if(combo.selectIndex == -1)
{
console.log(data.length - 1);
combo.select(data[data.length - 1][combo.valueField]);
}
else
{
combo.select(data[combo.selectIndex][combo.valueField]);
}
}
//触发选中事件
//combo.fireEvent('select', combo,store.getAt(combo.selectIndex));
},
failure: function (response) {
//请求服务器失败
}
});
}
});
调用实例:
{
xtype: 'baseCombobox',
name: "typeName",
fieldLabel: "类型",
displayField: 'typeName',
valueField: 'id',
emptyIndex:0,
multiSelect:false,
url:"/itemType/list",
listeners:{
select:'query'
}
},
这样大大方便了我使用combobox,如果某种类型的combobox需要重复使用,建议还是直接定义好他,到需要用的时候一句:
xtype: 'itemTypeCombobox',就可以搞定了,代码看起来简洁又漂亮。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Extjs
# combobox
# Extjs4.0 ComboBox如何实现三级联动
# ExtJS4给Combobox设置列表中的默认值示例
# Extjs中ComboBoxTree实现的下拉框树效果(自写)
# extjs3 combobox取value和text案例详解
# Extjs中ComboBox加载并赋初值的实现方法
# Extjs EditorGridPanel中ComboBox列的显示问题
# extjs中grid中嵌入动态combobox的应用
# ExtJS PropertyGrid中使用Combobox选择值问题
# ExtJs使用总结(非常详细)
# ExtJS 学习专题(一) 如何应用ExtJS(附实例)
# 自定义
# 写了
# 放在
# 一句
# 找不到
# 很久
# 每次都
# 则为
# 很多东西
# 需要用
# 大家多多
# 就可以
# 搞定了
# 重复使用
# 便了
# 忘记了
# queryMode
# url
# local
# autoSelect
相关文章:
建站之星安全性能如何?防护体系能否抵御黑客入侵?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
建站之星免费版是否永久可用?
济南专业网站制作公司,济南信息工程学校怎么样?
如何构建满足综合性能需求的优质建站方案?
如何零基础开发自助建站系统?完整教程解析
公司网站制作价格怎么算,公司办个官网需要多少钱?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
制作网站的基本流程,设计网站的软件是什么?
建站之星如何快速更换网站模板?
如何快速搭建响应式可视化网站?
建站主机如何选?性能与价格怎样平衡?
红河网站制作公司,红河事业单位身份证如何上传?
创业网站制作流程,创业网站可靠吗?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
深圳网站制作的公司有哪些,dido官方网站?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
如何在宝塔面板中创建新站点?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
深入理解Android中的xmlns:tools属性
建站中国官网:模板定制+SEO优化+建站流程一站式指南
完全自定义免费建站平台:主题模板在线生成一站式服务
如何快速搭建自助建站会员专属系统?
建站之星如何实现五合一智能建站与营销推广?
如何高效搭建专业期货交易平台网站?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
小建面朝正北,A点实际方位是否存在偏差?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
如何解决VPS建站LNMP环境配置常见问题?
网站制作模板下载什么软件,ppt模板免费下载网站?
免费视频制作网站,更新又快又好的免费电影网站?
如何通过VPS搭建网站快速盈利?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
网站制作公司排行榜,抖音怎样做个人官方网站
免费ppt制作网站,有没有值得推荐的免费PPT网站?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
Bpmn 2.0的XML文件怎么画流程图
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
建站上市公司网站建设方案与SEO优化服务定制指南
SQL查询语句优化的实用方法总结
广平建站公司哪家专业可靠?如何选择?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
Swift中循环语句中的转移语句 break 和 continue
北京专业网站制作设计师招聘,北京白云观官方网站?
焦点电影公司作品,电影焦点结局是什么?
如何快速查询网址的建站时间与历史轨迹?
如何彻底卸载建站之星软件?
简历在线制作网站免费版,如何创建个人简历?
制作表格网站有哪些,线上表格怎么弄?
*请认真填写需求信息,我们会在24小时内与您取得联系。