ExtJS grid的dataIndex,store中的field,reader中的field
来源:互联网 发布:网络工程学的是什么 编辑:程序博客网 时间:2024/04/30 04:54
当一个对象的属性中包含了另一个对象,即外键,如:
public class Post implements java.io.Serializable {private String id;private String name;private String num;private Post parent;private Department department;private Role role;private Integer sort;private Integer delstate;private Integer children; // 0表示无子节点,1表示有子节点
Post 对象 ,含有department和role的外键对象,此时,grid中的dataIndex store中的field以及reader中的field怎么写呢
一:grid中的dataIndex
var postGrid = new Ext.grid.GridPanel({sm : sm,loadMask : { msg : '正在加载表格数据,请稍等...'},store : postStore,frame : true,columns : [sm,{header : 'id',id : 'id',dataIndex : 'id',hidden : true,sortable : false},{header : '岗位名称',dataIndex : 'name',width : 300,resizable : true},{header : '岗位编号',dataIndex : 'num',width : 150},{header : '所在部门',dataIndex : 'department.name',width : 100},{header : '所属职级',dataIndex : 'role.name',width : 150}],
这里只用写出对象中的属性即可,如果是含有对象外键,省去对象点,然后后面按照一般属性定义即可。
二:store中的field
var postStore = new Ext.data.JsonStore({proxy : new Ext.data.HttpProxy({url : 'post_queryAllPost.action'}),root : 'item_Post',fields : ['id', 'name','num','department.name' ,'role.name']});postStore.load();
这里跟grid中对象属性定义方法一样
三:reader中的field
当某一form需要加载reader
var editChildrenForm = new Ext.form.FormPanel({reader : _jsonFormReader,
然后items定义如下
items: [{ xtype:'hidden', name:'post.id', id:'editNodeId'},{ fieldLabel: '岗位名称', xtype : 'textfield', id:'editNodeName', name: 'post.name', anchor : '100%', allowBlank:false },{ fieldLabel: '岗位编号', xtype : 'textfield', id:'editNodeNum', name: 'post.num', anchor : '100%', allowBlank:false },{ fieldLabel : '部门类型', id:'editNodeRole',xtype : 'combo',store : roleStore,valueField : 'id',anchor : '100%',displayField : 'name',mode : 'local',forceSelection : true,// 必须选择一项hiddenName : 'post.role.id',// hiddenName才是提交到后台的input的nameeditable : false,// 不允许输入triggerAction : 'all' }],
而这些item中的值又要通过ognl传到后台作参数时,name中的属性必须加上对象点,也就是完整对象写法,然后下面最重要的是下面reader的mapping
var _jsonFormReader = new Ext.data.JsonReader({root : 'item_Post'}, [{name : 'post.id',mapping : 'id'}, {name : 'post.name',mapping : 'name'}, {name : 'post.num',mapping : 'num'},{name : 'post.role.id',mapping : 'role.id'},{name : 'post.role.name',mapping : 'role.name'}]);
映射 的这个地方非常 特别,如果是给某一个 下拉框赋值,而这个下拉框本身又有值得时候 ,比如
id :'updateDepartmentid',fieldLabel : '部门',xtype : 'combo',store : departmentStore,valueField : 'id',anchor : '98%',displayField : 'name',mode : 'local',forceSelection : true,// 必须选择一项hiddenName : 'user.department.id',// hiddenName才是提交到后台的input的nameeditable : false,// 不允许输入triggerAction : 'all',// allowBlank : false// 该选项值不能为空
name : 'b',mapping : 'department.id'},{name : 'a',mapping : 'department.name'
如果下拉框的id 与 映射中 b的值 相等,那么 下拉框赋值 为 id 所对应 在下拉框里记录中 相同 id 的 name 的值
如果下拉框的 id 与 映射中a 的值相等 ,那么下拉框赋值为 department.name的值
0 0
- ExtJS grid的dataIndex,store中的field,reader中的field
- Elasticsearch中的store field跟non-store field的区别
- 搜索引擎 lucene2 关于Field类中的内部类Store和Index的理解
- Lucene中的Field
- 反射中的Member.Field
- lucene,Field.Index, Field.Store
- Extjs中,循环遍历Grid中的Store对象
- lucene中Field.Index,Field.Store的一些设置
- Lucene-Field.Store的Field.Index属性笔记
- Solr中的Document、Field、Schema
- ExtJs中的Store
- Lucene Field.Store解析
- lucene--Field.Store解析
- ExtJs中的Grid具体操作
- EXTJS中的store获取额外的值
- lucene中Field.Index,Field.Store
- lucene中Field.Index,Field.Store详解
- lucene中Field.Index,Field.Store详解
- 消除云计算应用程序迁移的三大误解
- 程序员是怎样练成的?
- alpha - beta算法 伪代码
- 苦口进攻犯规热帖供热
- 恢复 android logcat 不输出
- ExtJS grid的dataIndex,store中的field,reader中的field
- UITableView Class 参考 (1)<Creating Table View Cells>
- Dom4j中的中文编码问题
- 作为计算机专业的工程师,你问过自己这些问题吗?
- Eclipse使用ExtJS无法安装Spket插件解决办法
- iOS NSRunLoop
- C++初学者:类及初始化
- maven创建web工程找不到Spring配置文件
- Micron sensor 驱动与调试小结