Extjs 下拉框

  刚刚熟练了easyui控件的使用,又开始了现在的这个项目。这个项目是个半成品,前端使用的是Extjs控件,jsp中没有代码,就引用了很多的js。。。于是乎有种不知所措了呀。。。

 说实话特别的不想去看那些代码,第一是不熟悉,第二是太乱没条理,还有一个原因界面连html不想看又不行,公司要做这个项目,你又不能跟公司领导说我不会,,所以还是硬着头皮看了一天。

 大概了解后,就开始copy,past,将原模块中js原封不动的考到了jsp页面,于是乎就这样运行起来了,只不过调用的不是我自己的方法。后台业务简单啊,一会儿就把后台弄好了,然后将界面js中的url路径改为自己的。到现在为止,界面是有了,文本框下拉框也都出来了,界面也就这些控件。

 extjs中文本框相对下拉框简单多了,下拉框涉及到赋值,是动态赋值还是静态赋值。下面就来介绍一下下拉框的这两种赋值。

1,静态赋值。如性别下拉框

代码如下:

<span style="font-size:18px;">          new Ext.form.ComboBox({
      		name : 'usersex_id',
      		id : 'usersex_id',
    		hiddenName : 'usersex_id',
    		typeAhead : true,
    		triggerAction : 'all',
    		lazyRender : true,
    		mode : 'local',
    		store : new Ext.data.ArrayStore({
    					fields : ['value', 'text'],
    					data : [["1", '男'], ["2", '女']]
    				}),
    		valueField : 'value',
    		displayField : 'text',
    		emptyText : '请选择性别',
    		editable : false,
    		selectOnFocus : true,
    		width : 85
        	})</span>

    其中store项中data数组为下拉框的内容,emptyText为下拉框为空时提示的信息 

显示结果如下图所示:

                                                                        

2,动态赋值

代码如下:

<span style="font-size:18px;">//获取数据
var userSexStore = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
					url : '。。。。。。'
				}),
		reader : new Ext.data.JsonReader({}, [{
							name : 'value'
						}, {
							name : 'communityname'
						}]),
		listeners : {
			// 设置远程数据源下拉选择框的初始值
			'load' : function(obj) {
				
			}
		}
	});

	userSexStore.load();


//下拉框
 new Ext.form.ComboBox({
				hiddenName : 'usersex_id',
				name:'usersex_id',
				id:'usersex_id',
				emptyText : '请选择,,,',
				triggerAction : 'all',
				store : userSexStore,
				displayField : 'text',
				valueField : 'value',
				mode : 'local', // 数据会自动读取,如果设置为local又调用了store.load()则会读取2次;也可以将其设置为local,然后通过store.load()方法来读取
				editable : false,
				anchor : '100%'
		     })</span>
     通过url返回的结果是“ [["1", '男'], ["2", '女']]”格式的数据,使用动态赋值时,一定要设置ComboBox的hiddenName属性,triggerAction:‘all’ 属性的作用下拉框多个值时选中一个其他的项不会丢失,不设置此属性其他项会丢失。


    Extjs还在继续学习中,还是那句话就copy past吧,若只是想它难,那么它就真的难了,着手去做,做出来了也就不难了。。。。


你可能感兴趣的:(Extjs 下拉框)