欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Extjs4 输入式 ComboBox 实现 (软件环境 struts2.3 , spring3) 博客分类: ExtJs4 springjsonAjaxComboBox

程序员文章站 2024-02-18 22:36:04
...
Extjs4 输入式 ComboBox 实现 (软件环境 struts2.3 , spring3)

第一步: 创建 ComboBox 对象, 该对象在Ext.form.field.ComboBox 下.

var staffCombox = Ext.create('Ext.form.field.ComboBox', {
        // 下拉列表框的名称 label。
        fieldLabel: '员工信息',
       // 下拉列表值的展示内容  (显示 )
        displayField: 'name',
       // 下拉列表隐藏的值
        valueField : 'staffNumber',
       // 是否允许为空, false 不能为空, 默认为ture
        allowBlank : false,
        // 数据存储的对象, 是第二步需要处理的(创建数据仓储)
        store: staffStore,
       // 发送到action 的参数名称, 在 action 中通过 request.getParameter("staffNumber") 获取, 输入框中输入的值
        queryParam: 'staffNumber',
       // 查询 模式, remote 远程, local  本地
        queryMode: 'remote',
      // all 表示每次都去服务端查询, query 表示,相同值及不去远程查询,否则去远程查询
        triggerAction: 'all',
      //
        listConfig: {
            getInnerTpl: function() {
                return '{%var value = this.field.getRawValue().replace(/([.?*+^$[\\]\\\\(){}|-])/g, "\\\\$1");%}' +
                    '{[values.staffNumber.replace(new RegExp(value, "i"), function(m) {return "<b>" + m + "</b>";})]}';
            }
        },
        //定制监听事件
        listeners: {
            // 定制选中事件
             select: function() {
                 Ext.Msg.alert('员工信息', '员工信息: ' + this.getValue());
      }
        }
    })
第二步:创建数据仓储   Ext.data.Store

var staffStore = Ext.create('Ext.data.Store', {
    //数据加载方式, 默认不自动加载
   autoLoad : false,
    // 对应的model 对象, 在第三步中定义
   model: 'Staff',
// 数据获取方式
   proxy : {
    // 通过ajax 的方式从服务器端获取数据
    type : 'ajax',
    // 请求的action 地址
    url : webContent+'json/queryStaff.action',
    // 返回数据的格式
    reader : {
    // 返回类型json 格式
     type : 'json',
    // 根节点是  staff 的json 数据
     root : 'staffs'
    }
   }
});

// 从action 返回的数据格式如下
{"staffs":[{"createDate":{"date":1,"day":5,"hours":0,"minutes":0,"month":10,"seconds":0,"time":1383264000000,"timezoneOffset":0,"year":113},"name":"向东流","password":"66749","roles":[],"satffId":1000,"staffNumber":"66749","version":{"date":1,"day":5,"hours":0,"minutes":0,"month":10,"seconds":0,"time":1383264000000,"timezoneOffset":0,"year":113}}]}

第三步
定义数据model 对象  需要继承 model 类
Ext.define(' Staff ', {
extend : 'Ext.data.Model',
                    // 字段
fields : [{
name : ' staffNumber ',
type : 'string'
}, {
name : 'name',
type : 'string'
},   {
name : 'staffId',
type : 'string'
}]
});



完成