Ext.js5(自定义的下拉列表模板)(从服务器加载数据)(28)

view

/**
 * This example illustrates a combo box which loads the data source from a server
 * but queries the local result set. It uses a custom item template for the dropdown list.
 * 这个例子模拟了下拉框从服务器加载数据但是查询本地结果集。使用了自定义的下拉列表模板。
 */
Ext.define('KitchenSink.view.form.combobox.RemoteLoad', {
    extend: 'Ext.form.Panel',
    xtype: 'remote-loaded-combo',


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

    items: [{
        xtype: 'fieldset',
        layout: 'anchor',
        items: [{
            xtype: 'component',
            anchor: '100%',
            html: [
                '<h3>Remote loaded, local query mode</h3>',
                '<p>This ComboBox uses remotely loaded data, to perform querying ',
                'client side.</p>',
                //适用于数据并非太大或者动态的操控
                '<p>This is suitable when the dataset is not too big or dynamic ',
                'to be manipulated locally.</p>',
                '<p>This example uses a custom template for the dropdown list ',
                'to illustrate grouping.</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',
                autoLoad: true
            },
            minChars: 0,
            queryMode: 'local',
            tpl: [
                '<ul class="x-list-plain">',
                    '<tpl for=".">',
                        '<li class="',
                            Ext.baseCSSPrefix, 'grid-group-hd ',
                            Ext.baseCSSPrefix, 'grid-group-title">{abbr}</li>',
                        '<li class="x-boundlist-item">',
                            '{state}, {description}',
                        '</li>',
                    '</tpl>',
                '</ul>'
            ]
        }]
    }]
});

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、付费专栏及课程。

余额充值