Extjs的FORM表单与window窗口问题-修改-增加

lc11422302 2014-10-16 11:03:27
//人员表单
var userForm = new Ext.form.FormPanel({
border: false,
defaultType:'textfield',
layout: {
type: 'table',
columns: 2
},
padding: "40 24 40 24",
items: [{
xtype: "hidden",
name: "userId"
},{
fieldLabel: "姓名",
labelWidth: 80,
width: 250,
height: 28,
padding: "10 0 0 0",
afterLabelTextTpl: required,
allowBlank: false,
blankText: "请输入姓名!",
msgTarget: "side",
name: "name"
},{
xtype: "combo",
fieldLabel: "性别",
name: "sex",
hiddenName: "sex",
emptyText: "请选择性别",
width: 250,
labelWidth: 80,
height: 28,
padding: "10 0 0 30",
queryMode : 'local', //指定数据来源
editable: false,
triggerAction: 'all',
value: 'sex',
displayField: 'sexName', //显示的字段
valueField: 'sexId', //字段对应的ID
store: Ext.create("Ext.data.Store", {
fields: ['sexId','sexName'],
data: [{"sexId": 0, "sexName": "女"},
{"sexId": 1, "sexName": "男"}]
})
}
// 省略后面内容
});
//添加人员win
var addUserWin = function(){
//userForm.form.reset();
if(!newUserWin){
newUserWin=new Ext.Window({
title: "人员注册-新增",
draggbale: false,
border: false,
width: 600,
plain : true,
modal: true, //是否模态窗口,默认为false
resizable: false, //是否可以调整大小
layoutOnTabChange : true,
autoScroll:true,
collapsible : true, // 允许缩放条
closable : true,
closeAction : 'close',
items: userForm,
buttonAlign: "center",
buttons: [{
text: "保存",
padding: "5 0 5 0",
handler: function(){
if(userForm.getForm().isValid()){
userForm.getForm().submit({
submitEmptyText: false, //防止传入 emptyText的值
url: '../../user/addUser',
waitTile: '提示',
waitMsg: '正在提交信息,请稍等...',
success: function(form,action){
if(action.result == true){
newUserWin.close();
userForm.form.reset();
userStore.load();
}
},
failture: function(form,action){
msg('提示', '添加信息失败!');
}
});
}
}
},{
text: "取消",
padding: "5 0 5 0",
handler: function(){
newUserWin.close();
}
}]
});
}
newUserWin.show();
}

//修改人员win
var editUserWin = function(){
//if(!updateUserWin){
userForm.form.reset();
updateUserWin=new Ext.Window({ 
title: '人员注册-修改', 
draggbale: false,
border: false,
width: 600,
plain : true,
modal: true, //是否模态窗口,默认为false
resizable: false, //是否可以调整大小
layoutOnTabChange : true,
autoScroll:true,
collapsible : true, // 允许缩放条
closable : true,
closeAction : 'close',
items: userForm,       
buttonAlign: "center",
buttons: [{
text: "保存",
padding: "5 0 5 0",
handler: function(){
if(userForm.getForm().isValid()){
userForm.getForm().submit({
submitEmptyText: false, //防止传入 emptyText的值
url: '../../user/addUser',
waitTile: '提示',
waitMsg: '正在保存信息,请稍等...',
success: function(fp,o){
if(o.result == true){
updateUserWin.close();
userForm.form.reset();
userStore.load();
}
},
failture: function(){
msg('提示', '保存信息失败!');
}
});
}
}
},{
text: "取消",
padding: "5 0 5 0",
handler: function(){
updateUserWin.close();
}
}] 
});
//}
updateUserWin.show();
}

这样两个window用同一个form就会出现问题。第一次打开新增win正常,然后在打开修改也正常 ,接下来在打开新增就不能显示form的内容了。修改win正常 好像是不能创建form了。这是怎么回事啊。 小弟分少知道的麻烦帮忙解答下 谢谢了。
...全文
363 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我也遇到了同样的问题,两个window用同一个form,一个win可以显示form,一个无法显示,添加了closeAction :'destroy' 这个属性也是没有解决问题,请问楼主是怎么解决的
zhaoxiancheng 2014-10-18
  • 打赏
  • 举报
回复
引用 1 楼 zebro1573 的回复:
销毁form,把win给销毁 是这个: closeAction :'destroy' 不是close
+1
zebro1573 2014-10-18
  • 打赏
  • 举报
回复
引用 2 楼 lc11422302 的回复:
把win给销毁了不行啊。这样的话第一个(新增/修改)可以正常打开 第二个(修改/新增)就打不开了。 我现在新增的和修改的form写成单独的 不过我觉得应该可以用一个
可以用同一个form的,没有用的配置项就不要写。你说的那种情况不可以的
lc11422302 2014-10-17
  • 打赏
  • 举报
回复
把win给销毁了不行啊。这样的话第一个(新增/修改)可以正常打开 第二个(修改/新增)就打不开了。 我现在新增的和修改的form写成单独的 不过我觉得应该可以用一个
zebro1573 2014-10-17
  • 打赏
  • 举报
回复
销毁form,把win给销毁 是这个: closeAction :'destroy' 不是close

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧