全网整合营销服务商

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

免费咨询热线: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制作软件,有什么好的视频聊天网站或者软件?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  建站之星×万网:智能建站系统+自助建站平台一键生成  黑客如何通过漏洞一步步攻陷网站服务器?  定制建站哪家更专业可靠?推荐榜单揭晓  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何在云服务器上快速搭建个人网站?  制作销售网站教学视频,销售网站有哪些?  c# 服务器GC和工作站GC的区别和设置  如何确保西部建站助手FTP传输的安全性?  C#怎么使用委托和事件 C# delegate与event编程方法  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  红河网站制作公司,红河事业单位身份证如何上传?  建站之星价格显示格式升级,你的预算足够吗?  开心动漫网站制作软件下载,十分开心动画为何停播?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  如何在万网自助建站平台快速创建网站?  行程制作网站有哪些,第三方机票电子行程单怎么开?  制作公司内部网站有哪些,内网如何建网站?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  如何在阿里云域名上完成建站全流程?  网站按钮制作软件,如何实现网页中按钮的自动点击?  七夕网站制作视频,七夕大促活动怎么报名?  如何选择高效响应式自助建站源码系统?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  制作农业网站的软件,比较好的农业网站推荐一下?  常州企业网站制作公司,全国继续教育网怎么登录?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  ,怎么用自己头像做动态表情包?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何在橙子建站中快速调整背景颜色?  济南专业网站制作公司,济南信息工程学校怎么样?  浅谈Javascript中的Label语句  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  *服务器网站为何频现安全漏洞?  C++时间戳转换成日期时间的步骤和示例代码  建站主机是什么?如何选择适合的建站主机?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  ,购物网站怎么盈利呢?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何快速生成ASP一键建站模板并优化安全性?  如何快速搭建自助建站会员专属系统?  如何快速搭建支持数据库操作的智能建站平台? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。