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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 初三学生三模考的不好怎么办 高考体检检查出乙肝怎么办 高考体检单丢了怎么办 小腿弯曲没发育好怎么办? 辅警考试体能测试不合格怎么办 跑步跑不动怎么办腿软 人胖跑步跑不动怎么办 不工作每天很累怎么办 电大本科文凭毕业证掉了怎么办 要求全日制本科自考本科怎么办 毕业证被学校扣了怎么办 自考本科档案没有密封怎么办 艺术生统考没过怎么办 本科科目没考过怎么办 军校体检条丢了怎么办 学美术考了大专怎么办 音基试唱音不准怎么办 音基证书丢了怎么办 职称计算机证书丢了怎么办 30岁了 开始怀旧怎么办 31岁了 缺乏运动怎么办 30多了还一事无成未来怎么办 导师说名额已满怎么办 在中国想当大官怎么办 站久了小腿变粗怎么办 苹果x锁屏延迟怎么办 被扇了巴掌耳痛怎么办 被扇了巴掌耳鸣怎么办 水兵舞不会扭胯怎么办 我的字写得很丑怎么办 二年级学生不会造句怎么办 w10下载种子文件失败怎么办 宝宝挂水手肿了怎么办 lol有英雄皮肤没英雄怎么办 qq聊天图标粉色钥匙怎么办 和舍友相处不来怎么办 被舍友偷了东西怎么办 体育生没过线怎么办 户主去世房产不能过户怎么办 苍蝇飞到嘴唇上怎么办 苍蝇不小心碰到嘴唇了怎么办