Extjs之多选下拉框(MultiSelect)

本文介绍了如何在Extjs项目中创建一个多选下拉框的功能,包括扩展js类库和添加相应的css样式。同时,推荐了作者的老师提供的人工智能教程,适合零基础学习者,旨在分享知识,促进技术发展。
摘要由CSDN通过智能技术生成

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

扩展js类库,在项目中建立一个 js文件,命名为:xxx.js  其代码为:

if ('function' !== typeof RegExp.escape) {    RegExp.escape = function (s)     {        if ('string' !== typeof s)         {            return s;        }        return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');    };}Ext.ns('Ext.form');Ext.form.MultiSelect = Ext.extend(Ext.form.ComboBox, {    checkField: 'checked',    multi: true,    separator: ',',    initComponent: function ()     {        if (!this.tpl)         {            this.tpl = '<tpl for=".">' + '<div class="x-combo-list-item">'                    + '<img src="' + Ext.BLANK_IMAGE_URL + '" '                    + 'class="ux-MultiSelect-icon ux-MultiSelect-icon-'                    + '{[values.' + this.checkField + '?"checked":"unchecked"'                    + ']}">'                    + '{[values.' + this.displayField + ']}'                    + '</div>'                    + '</tpl>';        }        Ext.form.MultiSelect.superclass.initComponent.apply(this, arguments);        this.on(        {            scope: this,            beforequery: this.onBeforeQuery,            blur: this.onRealBlur        });        this.onLoad = this.onLoad.createSequence(function ()         {            if (this.el)             {                var v = this.el.dom.value;                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Extjs 中,可以通过设置 `multiSelect` 属性为 `true` 来实现下拉框多选。回显则需要先获取到下拉框组件的值,然后将其赋值给需要回显的表单元素。 例如,在以下代码中,我们创建了一个下拉框组件,设置了 `multiSelect` 为 `true`,并将其添加到了表单中。当用户选择完选项后,点击保存按钮时,我们可以获取到下拉框的值,然后将其赋值给一个隐藏的表单元素,以便在下一次打开表单时进行回显。 ```javascript Ext.create('Ext.form.Panel', { title: 'My Form', items: [{ xtype: 'combo', fieldLabel: 'Choose Options', multiSelect: true, store: ['Option 1', 'Option 2', 'Option 3'], displayField: 'name', valueField: 'value' }, { xtype: 'hidden', name: 'selectedOptions' // 隐藏表单元素,用于回显 }], buttons: [{ text: 'Save', handler: function() { var form = this.up('form').getForm(); var selectedOptions = form.findField('selectedOptions'); var combo = form.findField('combo'); var value = combo.getValue(); selectedOptions.setValue(value); // 将下拉框的值赋值给隐藏表单元素 form.submit({ success: function() { Ext.Msg.alert('Success', 'Form submitted successfully.'); }, failure: function() { Ext.Msg.alert('Error', 'Form submission failed.'); } }); } }] }); ``` 在打开表单时,我们需要先获取到隐藏元素的值,然后将其赋值给下拉框组件。代码如下: ```javascript var form = Ext.create('Ext.form.Panel', { title: 'My Form', items: [{ xtype: 'combo', fieldLabel: 'Choose Options', multiSelect: true, store: ['Option 1', 'Option 2', 'Option 3'], displayField: 'name', valueField: 'value' }, { xtype: 'hidden', name: 'selectedOptions', value: ['Option 1', 'Option 2'] // 设置隐藏表单元素的初始值,用于回显 }] }); var selectedOptions = form.getForm().findField('selectedOptions').getValue(); var combo = form.getForm().findField('combo'); combo.setValue(selectedOptions); // 将隐藏表单元素的值赋值给下拉框组件 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值