extjs 图片上传

  1. 上传控件:   
  2. var panel3 = new Ext.form.FormPanel({   
  3.     labelAlign : 'left',   
  4.          labelWidth:60,   
  5.     border : false,   
  6.     bodyStyle : 'padding:4px;',   
  7.     frame : false,   
  8.     url : '../ajaxdata/uploadFile.jsp',   
  9.     autoHeight : true,   
  10.     fileUpload : true,   
  11.     items : [{   
  12.         id : 'file',   
  13.         autoScroll : false,   
  14.         xtype : 'textfield'  
  15.                   fieldLabel:'本地上传',   
  16.         name : 'file',   
  17.         hideLabel : true,   
  18.         // inputType : 'file'//按照Ext默认的属性将inputType设为file时,始终响应不了onchange事件,结果就以autoCreate的方式,如下,因为这种方式相当于html里的input,所以也就响应得了啦!   
  19.   
  20.         autoCreate : {   
  21.             tag : "input",   
  22.             type : "file",   
  23.             size : "20",   
  24.             autocomplete : "off",   
  25.             onChange : "browseImages(this.value);"  
  26.         }   
  27.     }]   
  28.   
  29.     ,   
  30.     buttons : [{   
  31.         text : '上传',   
  32.         handler : function() {   
  33.             panel3.getForm().submit({   
  34.                 // waitTitle : "请稍候",   
  35.                 waitMsg : "正在上传...",   
  36.                 success : function(form, action){},   
  37.                 failure : function(form, action) {   
  38.                     Global.alert('上传图片失败!');   
  39.                 }   
  40.             })   
  41.         }   
  42.     }]   
  43. });   
  44.   
  45. /*   
  46.  * 编辑  
  47.  * @date 2008 July 10  
  48.  */  
  49. 经过实践,还存在一种可以激发change事件的方法;   
  50. 首先说一下获取form里面的field的三种方法:   
  51.  1)Ext.getCmp('id');   
  52.  2)FormPanel.getForm().findField('id/name');   
  53.  3)Ext.get('id/name');  //前提是FormPanel在界面上显示出来了   
  54.   
  55. 应用上面的第1和第2种方法得到的组件均触发不了change事件,只有第三种方法可以   
  56. 触发,前提是FormPanel要在界面上显示出来,所以需要触发show事件,然后在show   
  57. 事件里调用Ext.get('id/name'),由于FormPanel经常是放在Ext.Window里的,所   
  58. 以新的问题又来了:   
  59.   1)调用FormPanel.on('show',fn);//当Window显示出来的时候,事件没有触发   
  60.   2)调用FormPanel.getForm().on('show',fn);//情况同上   
  61.   3)调用FormPanel.ownerCt.on('show',fn);//OK 一切搞定   
  62. 其中scope也是需要注意的一项!   
  63.      
  64.    如果再不行的话,可以先调用:   
  65.       FormPanel.ownerCt.on('render',function(){   
  66.           FormPanel.ownerCt.on('show',fn,this);   
  67.       },this);  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值