ExtJS 下拉框


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

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

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

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

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

代码如下:

        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
         })

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

显示结果如下图所示:

2,动态赋值

代码如下:

//获取数据
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%'
      })

通过url返回的结果是“ [["1", '男'], ["2", '女']]”格式的数据,使用动态赋值时,一定要设置ComboBox的hiddenName属性,triggerAction:‘all’ 属性的作用下拉框多个值时选中一个其他的项不会丢失,不设置此属性其他项会丢失。

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

ExtJS中运用HTML5 Canvas简单例子

用ExtJS 4.0打造自己的Web桌面

ExtJS 的详细介绍:请点这里
ExtJS 的下载地址:请点这里

本文永久更新链接地址:

相关内容