ExtJs 的一些技巧与问题

http://www.javaeye.com/topic/214937
  • 修改列表(grid)里store的加载url  
  • Java代码 复制代码
    1. grid.getStore().proxy.conn.url =  "xxx.jsp" ;   
    2. grid.getStore().reload();   
    3.    
     grid.getStore().proxy.conn.url = "xxx.jsp";
     grid.getStore().reload();
      
  • Ext.data.Store里baseParams与Store.load({params:{}})的区别:      baseParams里的参数是一直存在的,而params里的参数,只有load时
         才会传递过去,当调用reload时参数就不存在了
  • 使Window以页面的相对大小显示
    Java代码 复制代码
    1. height: document.body.clientHeight * xx%   
    2. width: document.body.clientWidth * xx%  
     height: document.body.clientHeight * xx%
     width: document.body.clientWidth * xx%
    
  • Ext.FormPanel load(自动加载) 时的json格式 [list]
  • {data:[{a:'a'},{b:'b'}]},其中data是规定的,不能更改名称
  • 假如不为data的话,比如{root:[{a:'a'},{b:'b'}]},那么form 是自动加载不进去的,这时你需要在Ext.FormPanel里添加
    reader属性,如:
    Java代码 复制代码
    1. reader:  new  Ext.data.JsonReader({   
    2.            totalProperty:  'totalProperty' ,   
    3.            root:  'root'   
    4.         },[   
    5.            {name: 'a' },   
    6.            {name: 'b' }   
    7.         ])   
    8.  这样做的好处是可以手动选择想加载的字段!  
    reader: new Ext.data.JsonReader({
               totalProperty: 'totalProperty',
               root: 'root'
            },[
               {name:'a'},
               {name:'b'}
            ])
     这样做的好处是可以手动选择想加载的字段!
    
    

    [/list]
  • 获得iframe的方法
    Java代码 复制代码
    1. var ifr_window = window.frames[ "name/id" ];    
     var ifr_window = window.frames["name/id"];  
    
  • 制作表单的时候,经常form组件显示不出来或不正常其中有两个原因
    • id冲突,这个问题经常由重用引起的
    • 布局,form组件只有在'form'布局才显示正常,应添加layout:'form'
  • Ext.WindowGroup 负责把 window 归入一组,方便管理;
    Java代码 复制代码
    1.  var wgroup =  new  Ext.WindowGroup();   
    2.  var win= new  Ext.Window({   
    3.       title: "窗口"        
    4.       width: 400 ,   
    5.       height: 300 ,   
    6.       manager:wgroup});        
    7. //接下来就可以利用wgroup对这一组window进行操作啦!如   
    8. 1 、隐藏全部window   
    9. wgroup.hideAll();  
     var wgroup = new Ext.WindowGroup();
     var win=new Ext.Window({
          title:"窗口"	
          width:400,
          height:300,
          manager:wgroup}); 	
    //接下来就可以利用wgroup对这一组window进行操作啦!如
    1、隐藏全部window
    wgroup.hideAll();
    
  • Js 两个定时器
    Java代码 复制代码
    1. //将执行一次Expression   
    2. setTimeout(Expression,DelayTime)   
    3. //每隔DelayTime,执行一次   
    4. setInterval(expression,delayTime)  
    //将执行一次Expression
    setTimeout(Expression,DelayTime)
    //每隔DelayTime,执行一次
    setInterval(expression,delayTime)
    
  • 早上想找一个刷新树的方法,找了TreePanel,TreeLoader都没找到,
    结果发现只有根结点才有reload方法!
  • 今天测试了一下,Ext除了用html显示图片外还可以用     下面的autoCreate方式在form里显示,代码如下:
    Java代码 复制代码
    1. {   
    2.  fieldLabel:  '海报' ,   
    3.  autoCreate:{   
    4.      tag:  "input" ,   
    5.      type:  "image" ,   
    6.      src:  "images/add.gif" ,   
    7.      width:  150 ,   
    8.      height:  200 ,   
    9.      autocomplete:  "off"   
    10. }  
    {
     fieldLabel: '海报',
     autoCreate:{
         tag: "input",
         type: "image",
         src: "images/add.gif",
         width: 150,
         height: 200,
         autocomplete: "off"
    }
    
  • Ext 自定义事件三步曲 [list]
  • 添加事件addEvents(str)
    Java代码 复制代码
    1. this .addEvents( 'eventName' );  
     this.addEvents('eventName');
    
  • 添加事件监听器addListener(eventName,fn,scope);
    Java代码 复制代码
    1. this .on( 'eventName' , this .fn,scope);  
     this.on('eventName',this.fn,scope);
    
  • 激发事件fireEvent(eventName,args...)
    Java代码 复制代码
    1. this .fireEvent( 'eventName' ,arg0,arg1,...);   
    2. /*  
    3.  *----------------------------------------  
    4.  *添加事件监听器里的执行的方法this.fn里的参数就是  
    5.  *由激发事件时提供的,如agr0,agr1,...  
    6.  *-----------------------------------------  
    7.  */   
     this.fireEvent('eventName',arg0,arg1,...);
    //*
      *----------------------------------------
      *添加事件监听器里的执行的方法this.fn里的参数就是
      *由激发事件时提供的,如agr0,agr1,...
      *-----------------------------------------
      */
    

    [/list]
  • Ext reset() 方法刷新时,无法刷新inputType:file的值的解决方法: 不要使用ext Form的刷新方法:
    Java代码 复制代码
    1. FormPanel.form.reset()  
    FormPanel.form.reset()
    

    而是换成使用Dom的刷新方法:
    Java代码 复制代码
    1. FormPanel.form.getEl().dom.reset();  
    FormPanel.form.getEl().dom.reset();
    
  • 不断更新中,大家发现什么问题和技巧,欢迎提出,我会在这里更新的 [/list]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值