日期:2014-05-16  浏览次数:20421 次

简单的EXTJS多选下拉框

看了下网上的下拉框多选扩展示例都太复杂了。本来很简单的东西却搞的那么复杂。

贴贴我的代码 很简单

var store = new Ext.data.SimpleStore({
        fields: ['abbr', 'state', 'nick'],
        data : Ext.exampledata.states // from states.js
    });
    var combo = new Ext.form.ComboBox({
        store: store,
        displayField:'state',
		valueField:'abbr',
        typeAhead: true,
        mode: 'local',
		//tpl:'<tpl for="."><div ><span><input type="checkbox" onclick="myclick(this)" value="{state}" /></span><span class="x-combo-list-item">{state}</span></div></tpl>',
		tpl:'<tpl for="."><div class="x-combo-list-item"><span><input type="checkbox" {[values.check?"checked":""]}  value="{[values.state]}" /></span><span >{state}</span></div></tpl>',
        triggerAction: 'all',
        emptyText:'select...',

       // xtype:'button',
        selectOnFocus:true,
        applyTo: 'local-states',
		onSelect : function(record, index){
			if(this.fireEvent('beforeselect', this, record, index) !== false){
				record.set('check',!record.get('check'));
				var str=[];//页面显示的值
				var strvalue=[];//传入后台的值
				this.store.each(function(rc){
					if(rc.get('check')){
						str.push(rc.get('state'));
						strvalue.push(rc.get('abbr'));
					}
				});
				this.setValue(str.join());
				this.value=strvalue.join();
				//this.collapse();
				this.fireEvent('select', this, record, index);
			}
		}
    });
?
1 楼 JavaSky66 2011-08-12  
很不错....。
2 楼 jianhao84 2011-09-07  
好像搞不定啊,求指导:qq 287360083
3 楼 ychizhiyiheng 2011-10-10  
OK!  谢谢你!