全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Extjs让combobox写起来简洁又漂亮

也已经写了很久时间的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小时内与您取得联系。