浏览 9016 次
锁定老帖子 主题:ExtJs 动态添加表单
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (6)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-19
最后修改:2011-09-26
Ext.namespace("ExtFile.ui"); // Form ExtFile.ui.importFormPanel = function() { var myConfig = {}; Ext.apply(myConfig, { labelAlign : 'right', frame : false, fileUpload : true, bodyStyle : 'padding:10px;', title : '基本信息导入', autoScroll :true, height:400, items : [{ layout : 'form', border : false, bodyStyle : 'padding: 12px 10px 0 10px;', items : [{ items : [{ id : 'com00', layout : 'column', items : [{ columnWidth : .05, layout : 'form', border : false, labelWidth : 2, bodyStyle : 'padding: 10px 22px;', items : [{ text : '', iconCls : 'plus', xtype : 'button', handler : this.addField.createDelegate( this, []) }] }, { columnWidth : .05, layout : 'form', border : false, bodyStyle : 'padding: 10px 3px;', labelWidth : 2, items : [{ text : '', iconCls : 'subtraction', xtype : 'button', handler : this.removeField.createDelegate( this, ['00']) }] }, { columnWidth : .7, layout : 'form', labelWidth : 200, border : false, bodyStyle : 'padding: 10px 10px;', items : [{ xtype : "textfield", fieldLabel : '请选择文件(.xls文件) ', name : 'file', allowBlank : false, width : 400, blankText : '导入文件不能为空', inputType : 'file' }, { xtype : 'hidden', name : 'ad_itemId00' }] }] }] }] },{ columnWidth : .7, layout : 'form', labelWidth : 200, border : false, bodyStyle : 'padding: 10px 10px;', html:'您导入的文件不能超过7条,以免出现等待很长时间,请您慎重上传,谢谢!' }], buttons : [{ text : '导入文件', border : false, bodyStyle : 'padding: 10px 10px 0 10px;', handler : this.importBase.createDelegate(this, []) }, { text : '下载模板', handler : this.onDownload.createDelegate(this, []) }] }); ExtFile.ui.importFormPanel.superclass.constructor.call(this, myConfig); }; Ext.extend(ExtFile.ui.importFormPanel, Ext.FormPanel, { index : 10, // 移除字段 removeField : function(name) { this.index = this.index - 1; var comp = this.getComponent(0).getComponent(0); if (comp.items.getCount() <= 1) { Ext.MessageBox.alert('温馨提示', '至少保留一项数据项!'); return; } if (comp != null) { var removeArray = Ext.getCmp('com' + name) .findByType('hidden'); // 点击删除按钮后,保存其ID // this.getComponent(0).add({ // xtype : 'hidden', // name : 'removeId', // value : removeArray[0].value // }); comp.remove(Ext.getCmp('com' + name)); }; this.doLayout(true); }, addField : function(itemId, itemTitle, itemContent, itemClassId) { //this.index++; if(this.index >= 16){ HM.MsgUtils.alert('警告', '您添加的文件不能超过7条', null, null, 'warn', 0, false, 230); return; } // alert(this.index+">>"+name); var comp = this.getComponent(0).getComponent(0); var panel = new Ext.Panel({ autoScroll :true, id : 'com' + this.index, layout : 'column', items : [{ columnWidth : .05, layout : 'form', border : false, labelWidth : 2, bodyStyle : 'padding: 10px 22px;', items : [{ text : '', iconCls : 'plus', xtype : 'button', handler : this.addField.createDelegate( this, []) }] }, { columnWidth : .05, layout : 'form', border : false, labelWidth : 2, bodyStyle : 'padding: 10px 3px;', items : [{ text : '', iconCls : 'subtraction', xtype : 'button', handler : this.removeField.createDelegate( this, [this.index++]) }] }, { columnWidth : .7, layout : 'form', labelWidth : 200, border : false, bodyStyle : 'padding: 10px 10px;', items : [{ xtype : "textfield", fieldLabel : '请选择文件(.xls文件) ', name : 'file', width : 400, allowBlank : false, blankText : '导入文件不能为空', inputType : 'file' }/*, { xtype : 'hidden', value : itemId, name : 'ad_itemId' + this.index }*/] }] }); comp.add(panel); this.doLayout(true); return panel; }, importBase : function() { var permitted_extensions = ["xls"];// 定义文件的后缀名 var temp; var panel = this.getComponent(0).getComponent(0); var textfields = panel.findByType('textfield'); for (var i = 0; i < textfields.length; i++) { if (textfields[i].getValue() == '') { HM.MsgUtils.alert('警告', '您导入文件不能为空,请选择后保存!', null, null, 'warn', 0, false, 230); return; } if (permitted_extensions.length > 0) { var result = null; var parts = textfields[i].getValue().split("."); if (parts.length > 1) { result = parts.pop(); } if ((permitted_extensions.indexOf(result) != -1) == false) { HM.MsgUtils.alert('警告', '您上传的格式不正确,请您上传以[.' + permitted_extensions + ']格式!', null, null, 'warn', 0, false, 230); return; } } } // 保存 var url = Ext.template.root + '/baseInfo/sec_importOrgInfo.action'; this.getForm().submit({ timeout : 120000, waitTitle : '请稍候', waitMsg : '正在保存数据,请您耐心等候...', url : url, isUpload : true, enctype : 'multipart/form-data', scope : this, method : 'post', success : function(form, action) { Ext.MessageBox.hide(); if (action.result.id || action.result.info != "") { this.getForm().reset(); HM.MsgUtils.alert('提示', '保存成功!', null, null, 'info', 0, false); this.getForm().getEl().dom.reset();// 清空file文本框的值 if (this.index > 10) { var t = this.index-10; for(var i=0;i<t;i++){ this.removeField(this.index-1); } } } else { location = 'data.jsp'; } }, failure : function(form, action) { Ext.MessageBox.hide(); HM.MsgUtils.alert('错误', action.result ? action.result.message : '导入失败!', null, null, 'error', 0, false); } }); }, // 下载 onDownload : function() { document.location.href = Ext.template.root + '/baseInfo/sec_downFile.action'; // html : "<a href='"+ // Ext.template.root+"/main/sysFile_downFile.action?id="+fileId+"' // target=_self>"+fileName+"</a>" // alert('下载模板'); } }); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-09-24
不知道是什么东东了.
|
|
返回顶楼 | |
发表时间:2011-09-24
EXTJS动态添加文件表单
|
|
返回顶楼 | |
发表时间:2011-09-25
兄弟,你要贴图,让人家看到效果,才有动力看代码。你上来就是一大堆的codes,看着心慌~
|
|
返回顶楼 | |
发表时间:2011-09-25
不好意思··忘记了,等会贴图上去。
|
|
返回顶楼 | |
发表时间:2011-09-25
最好加一个格式标签,这样的排版看起来有点累
|
|
返回顶楼 | |
发表时间:2011-09-26
全是代码啊,没效果
|
|
返回顶楼 | |
发表时间:2011-09-26
你至少也要搞一个html页面吧 让我们这些不太懂ext的怎么怎么下手啊
|
|
返回顶楼 | |