论坛首页 Web前端技术论坛

ExtJs 的一些技巧与问题

浏览 13583 次
精华帖 (0) :: 良好帖 (6) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-07-15  
[color=white]
[list=1]
  • 修改列表(grid)里store的加载url
  •  
     grid.getStore().proxy.conn.url = "xxx.jsp";
     grid.getStore().reload();
      
  • Ext.data.Store里baseParams与Store.load({params:{}})的区别:
  •      baseParams里的参数是一直存在的,而params里的参数,只有load时
         才会传递过去,当调用reload时参数就不存在了
  • 使Window以页面的相对大小显示
  •  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属性,如:
    reader: new Ext.data.JsonReader({
               totalProperty: 'totalProperty',
               root: 'root'
            },[
               {name:'a'},
               {name:'b'}
            ])
     这样做的好处是可以手动选择想加载的字段!
    
    

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

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

    而是换成使用Dom的刷新方法:
    FormPanel.form.getEl().dom.reset();
    
  • 不断更新中,大家发现什么问题和技巧,欢迎提出,我会在这里更新的
  • [/list]
    [/color]
       发表时间:2008-07-15  
    不错,赞楼主,对我这个初学者很有用,希望继续~
    0 请登录后投票
       发表时间:2008-07-16  
    EXTJS,前几天,给客户替换了一个功能,用了EXTJS,一个页面有600条数据,显示需要8秒左右的时间,没法忍受了,客户又要换回以前那种table的了。
    0 请登录后投票
       发表时间:2008-07-17  
    在加载grid 表格数据的时候,
    直接写成
    datastroe.load({params:{start:0,limit:15}});

    往往不出现load...提示的小窗,
    改成
    setTimeout(function(){datastroe.load({params:{start:0,limit:PAGE_15}})},1);

    即可出现加载数据的loading...提示
    0 请登录后投票
       发表时间:2008-07-17  
    formPanel.form.setValues({id:1,name:'aabbcc'});

    这样加载更方便通用点。
    0 请登录后投票
       发表时间:2008-07-23  
    引用
    EXTJS,前几天,给客户替换了一个功能,用了EXTJS,一个页面有600条数据,显示需要8秒左右的时间,没法忍受了,客户又要换回以前那种table的了。

    嗯...这个。。要么分页,要么用LiveGrid
    0 请登录后投票
       发表时间:2008-07-23  
    sp42 写道
    引用
    EXTJS,前几天,给客户替换了一个功能,用了EXTJS,一个页面有600条数据,显示需要8秒左右的时间,没法忍受了,客户又要换回以前那种table的了。

    嗯...这个。。要么分页,要么用LiveGrid

    偶的exreport,
    8s可以显示5w的数据了。

    btw:在想,gridpanel可不能分批的异步加载数据,
    即,100rows,100rows的取,然后加到当前的页面?
    0 请登录后投票
       发表时间:2008-07-24  
    http://www.codeproject.com/KB/ajax/AjaxScrollingPagination.aspx,这里有个例子,分批加载数据。是C#代码,但是JS代码还是有参考价值的
    0 请登录后投票
       发表时间:2008-08-05  
    请问你刷新树的方法找到了吗?
    dianbo.zhu@gmail.com
    0 请登录后投票
       发表时间:2008-08-06  
    引用
    dimboo 23 小时前
    请问你刷新树的方法找到了吗?
    dianbo.zhu@gmail.com


    tree.root.reload()
    0 请登录后投票
    论坛首页 Web前端技术版

    跳转论坛:
    Global site tag (gtag.js) - Google Analytics