ext传值与一些零碎的操作笔记

以前我不知道传值的简化都是靠params,才知道自己上当了,比如说在gridpanel中,跳到一个修改的页面,需要把数据初始化到编辑页面,数据字段少还行,字段多如果用param机会坑了,昨天50个字段,我就想,肯定有简单的方法,最后查了官方文档发现了,在初始化编辑页面formpanel的时候用updateFormpanel.getForm().loadRecord(record);这样就可以把一条记录也就是record初始化到编辑页面。
record是gridpanel显示页面选中的一条记录比如说gridpanel用行双击时间:
 gridpanel.on('rowdblclick’,function(grid,rowindex,e){
    varrecord=grid.getStore().getAt(rowindex);
   createupdateWindow(record);这样把record传到编辑页面
 });
当然需要注意的还有name名字的取法 在接收的编辑页面给字段取一个id与grid里面的对应!

另外一个combobox在提交的时候,一般会自动取到他的显示出来的值,但是我们需要的是它的Id,这时候就把把combobox的name改为hiddenName:‘’,
combobox如果加载本地数据需要加一个mode:‘local’表示加载本地数据,否则会报一系列为空对象。

树节点单机时间,比如说树是部门树,我单机节点的时候把这个部门的人员显示在gridpanel上面,需要这样:
EmployDs=new Ext.data.JsonStore(Ext.apply({
  url:'',
},..fieds..)
orgTree.on('click' ,function(node){
  EmployDs.load({params:{orgId:node.attributes.id}});取到id传参数到后台
});


编辑时候初始化各种控件:(根据我自己做的总结,不知道是否通用)
编辑页面的控件取一个id与加载的时候的dataindex对应(也就是与实体的字段对应)初始化的时候就可以,我在这里试了textfield,datafieldradiogroup,combobox(本地加载)等等都可以初始化。但是combobox的远程加载我这样做就不行了,需要给他加个监听,listeners:{load:function(){Ext.getCmp('orgcombox').setValue(record.get('orgId'))这里的record是gridpanel传过来的一条记录这样就能对远程的combobox初始化! 当然不可或缺的是初始化页面的时候也要用上formpanelName.getForm().loadRecord(record);这一句话!




你可能感兴趣的:(extjs,java)