Extjs让combobox写起来简洁又漂亮
网络编程 2021-07-04 19:20www.168986.cn编程入门
代码看起来简洁又漂亮是如何做到的,这篇文章主要为大家详细介绍了Extjs如何让bobox写起来更简单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
也已经写了很久时间的extjs ,每次都用到很多的bobox,配置很多东西觉得实在是太麻烦,所以根据常用到的情况写了一个简便的bobox,记录下来,以免放在某个地方忘记了找不到了。
定义一个基本的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 (bo) { Ext.Ajax.request({ url: bo.url, method :'POST', params:bo.params, suess: 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(bo.emptyIndex >= 0) { var emp = {}; emp[bo.displayField] = "全部"; emp[bo.valueField] = "全部"; Ext.Array.insert(data,bo.emptyIndex,[emp]); } var store = Ext.create('Ext.data.Store', { fields: Ext.Object.getKeys(data[0]), data: data }); bo.setStore(store); //如果指定选中某个值 if(bo.selectValue != null) { bo.select(bo.selectValue); } else { //如果指定选中某个下标的值,-1为一个,> 0 则为第selectIndex个 if(bo.selectIndex == -1) { console.log(data.length - 1); bo.select(data[data.length - 1][bo.valueField]); } else { bo.select(data[bo.selectIndex][bo.valueField]); } } //触发选中事件 //bo.fireEvent('select', bo,store.getAt(bo.selectIndex)); }, failure: function (response) { //请求服务器失败 } }); } });
调用实例
{ xtype: 'baseCombobox', name: "typeName", fieldLabel: "类型", displayField: 'typeName', valueField: 'id', emptyIndex:0, multiSelect:false, url:"/itemType/list", listeners:{ select:'query' } },
这样大大方便了我使用bobox,如果某种类型的bobox需要重复使用,建议还是直接定义好他,到需要用的时候一句
xtype: 'itemTypeCombobox',就可以搞定了,代码看起来简洁又漂亮。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指