悟心

成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。 上人生的旅途罢。前途很远,也很暗。然而不要怕。不怕的人的面前才有路。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  93 随笔 :: 1 文章 :: 103 评论 :: 0 Trackbacks
上传控件:    
var panel3 = new Ext.form.FormPanel({    
    labelAlign : 'left',    
         labelWidth:
60,    
    border : 
false,    
    bodyStyle : 'padding:4px;',    
    frame : 
false,    
    url : '..
/ajaxdata/uploadFile.jsp',    
    autoHeight : 
true,    
    fileUpload : 
true,    
    items : [{    
        id : 'file',    
        autoScroll : 
false,    
        xtype : 'textfield'   
                  fieldLabel:'本地上传',    
        name : 'file',    
        hideLabel : 
true,    
        
// inputType : 'file'//按照Ext默认的属性将inputType设为file时,始终响应不了onchange事件,结果就以autoCreate的方式,如下,因为这种方式相当于html里的input,所以也就响应得了啦!    
   
        autoCreate : {    
            tag : 
"input",    
            type : 
"file",    
            size : 
"20",    
            autocomplete : 
"off",    
            onChange : 
"browseImages(this.value);"   
        }    
    }]    
   
    ,    
    buttons : [{    
        text : '上传',    
        handler : 
function() {    
            panel3.getForm().submit({    
                
// waitTitle : "请稍候",    
                waitMsg : "正在上传",    
                success : 
function(form, action){},    
                failure : 
function(form, action) {    
                    Global.alert('上传图片失败!');    
                }    
            })    
        }    
    }]    
});    
   
/*    
 * 编辑   
 * @date 2008 July 10   
 
*/   
经过实践,还存在一种可以激发change事件的方法;    
首先说一下获取form里面的field的三种方法:    
 
1)Ext.getCmp('id');    
 
2)FormPanel.getForm().findField('id/name');    
 
3)Ext.get('id/name');  //前提是FormPanel在界面上显示出来了    
   
应用上面的第1和第2种方法得到的组件均触发不了change事件,只有第三种方法可以    
触发,前提是FormPanel要在界面上显示出来,所以需要触发show事件,然后在show    
事件里调用Ext.get('id
/name'),由于FormPanel经常是放在Ext.Window里的,所    
以新的问题又来了:    
  
1)调用FormPanel.on('show',fn);//当Window显示出来的时候,事件没有触发    
  2)调用FormPanel.getForm().on('show',fn);//情况同上    
  3)调用FormPanel.ownerCt.on('show',fn);//OK 一切搞定    
其中scope也是需要注意的一项!    
      
   如果再不行的话,可以先调用:    
      FormPanel.ownerCt.on('render',
function(){    
          FormPanel.ownerCt.on('show',fn,
this);    
      },
this);   
posted on 2010-08-29 13:52 艾波 阅读(3312) 评论(2)  编辑  收藏 所属分类: Extjs

评论

# re: extjs 图片上传 2011-06-26 08:27 叶旭
请问你的 onChange 是干嘛用的 将文件转成文件流吗?我按照你的方法去做了 行不通 请求 进入不了后台的action 直接 dopost完毕就就结束了不进入用户的请求action中  回复  更多评论
  

# re: extjs 图片上传[未登录] 2013-08-13 17:02 z
z  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: