Ext.js5下拉单选框—查询远程数据(27)

view

/**
 * This example illustrates a combo box which querys a remote data source.
 * 这个例子用来模拟下拉框查找远程数据资源
 */
Ext.define('KitchenSink.view.form.combobox.RemoteQuery', {
    extend: 'Ext.form.Panel',
    xtype: 'remote-combo',


    title: 'Remote Query ComboBox',
    width: 500,
    layout: 'form',
    viewModel: {},

    items: [{
        xtype: 'fieldset',
        layout: 'anchor',
        items: [{
            xtype: 'component',
            anchor: '100%',
            html: [
                '<h3>Remote query mode</h3>',
                '<p>This ComboBox uses <code>queryMode: "remote"</code> ',
                'to perform the query on a remote API which returns states ',
                'that match the typed string.</p>'
            ]
        }, {
            xtype: 'displayfield',
            fieldLabel: 'Selected State',
            bind: '{states.value}'
        }, {
            xtype: 'combobox',
            reference: 'states',
            publishes: 'value',
            fieldLabel: 'Select State',
            displayField: 'state',
            anchor: '-15',
            store: {
                type: 'remote-states'
            },

            // We're forcing the query to run every time by setting minChars to 0 设置minchars为0可以让查询运行
            // (default is 4)
            minChars: 0,
            //store传递键入字符串使用的参数名,当ComboBox配置queryMode: 'remote'时。 如果显示设置为falsy值不会被发送,默认值:Defaults to: "query"
            queryParam: 'q',
            queryMode: 'remote'
        }]
    }]
});

model

Ext.define('KitchenSink.model.State', {
    extend: 'KitchenSink.model.Base',

    fields: [
        'abbr',
        'state',
        'description',
        'country'
    ]
});

store

Ext.define('KitchenSink.store.RemoteStates', {
    extend: 'Ext.data.Store',

    alias: 'store.remote-states',

    model: 'KitchenSink.model.State',

    storeId: 'remote-states',

    proxy: {
        type: 'ajax',
        url: 'resources/data/form/states_remote.php',
        reader: {
            type: 'array',
            rootProperty: 'data'
        }
    }
});
Ext.js 3是一个JavaScript框架,用于构建Web应用程序。在Ext.js 3中,要实现多选下拉(MultiSelect Combobox),可以使用Ext.ux.form.MultiSelect组件来实现。 首先,我们需要引入相应的Ext.js文件和MultiSelect组件的文件。 ```javascript <script type="text/javascript" src="extjs/ext-all.js"></script> <script type="text/javascript" src="ext-ux/src/widgets/form/MultiSelect.js"></script> ``` 接下来,我们可以创建一个下拉框,并将其转换为多选下拉框。 ```javascript new Ext.form.MultiSelect({ fieldLabel: '多选下拉', name: 'multiselect', width: 300, height: 150, store: new Ext.data.ArrayStore({ fields: ['value', 'text'], data: [ ['1', '选项1'], ['2', '选项2'], ['3', '选项3'], ['4', '选项4'], ['5', '选项5'] ] }), valueField: 'value', displayField: 'text', mode: 'local', emptyText: '请选择', selectOnFocus: true, delimiter: ',' }); ``` 在上面的代码中,我们创建了一个MultiSelect组件,并将其放置在一个表单中。该组件的name属性用于表单提交时的字段名,width和height属性用于设置组件的宽度和高度。store属性为组件提供数据源,该数据源可以是一个数组或者一个Ext.data.Store对象。valueField属性用于指定值字段,displayField属性用于指定显示的字段。mode属性设置为'local',表示数据源来自本地数据。emptyText属性用于设置默认的空文本,selectOnFocus属性设置为true,在组件获得焦点时自动选中已选择的值。delimiter属性用于设置值之间的分隔符。 以上就是使用Ext.js 3实现多选下拉的简单示例,通过这个示例,我们可以根据实际需求进行灵活的配置和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值