下面是我的代码与运行结果截图:
{text: "编辑用户", width: 80, sortable: false,
menuDisabled: true,
align: 'center',
xtype: 'actioncolumn',
icon: 'images/security/icon_edit.gif',
tooltip: '编辑用户',
handler: function(grid, rowIndex, colIndex){
var data = store.getAt(rowIndex).data;
createUpdateUserPanel(userListGrid,data.uid,data.username,data.password,data.email,data.status);……function createUpdateUserPanel(userListGrid,uid,username,password,email,status)/*parent,okcallback,*/
{
var ustatus = Ext.create('Ext.form.field.ComboBox',{
width: 325, 
labelWidth: 80, 
fieldLabel:'状态',
allowBlank:true,
editable:false,
store:Ext.create('Ext.data.Store',{
fields:[{name:'label'},{name:'value'}],
data:[{label:'启用',value:'1'},{label:'禁用',value:'0'}]
}),
displayField:'label',
valueField:'value',
name:'ustatus',
id:'ustatus',
enableKeyEvents:true,
listeners: {  
afterrender: function(combo) {  
         if(status == '1'){
         //combo.setValue('启用');
         combo.setRawValue('启用');
         combo.value=status;
         }else{
         combo.setRawValue('禁用');
         combo.value=status;
         }
         },
         keydown:function(e,eOpts){
      Ext.kingyea.Sharing.backSpaceKeyEvent(e,eOpts); 
      }
}  

});        

var newUserform = Ext.create('Ext.form.Panel', {                title: '修改用户', 
                header: false,
                height: 250, 
                width: 370, 
                frame: true, 
            //  renderTo: 'form', 
                bodyPadding: 5, 
                //defaultType: 'field', 
               // defaults: { width: 350, labelWidth: 80, labelSeparator: ':', labelAlign: 'left', msgTarget: 'side' }, 
                items: [{ 
                   xtype: 'fieldset', 
                    title: '用户信息', 
                    collapsible: true, //显示切换展开,收缩的按钮 
                    bodyPadding: 5,
                    defaultType: 'textfield', 
                    layout: 'anchor',
                    defaults: { width: 250, labelWidth: 80, labelSeparator: ':', labelAlign: 'left', msgTarget: 'side' }, 
                    items: [ 
                        { 
                         xtype: 'textfield',
                         id:'userid',
                         readOnly:true,
                         fieldLabel: '用户ID' ,
                         value:uid,
                         width: 325, 
                         enableKeyEvents:true,
                         listeners: {
                         keydown:function(e,eOpts){
                         //backSpaceKeyEvent(e,eOpts);
                         Ext.kingyea.Sharing.backSpaceKeyEvent(e,eOpts); 
                         } 
                        }}, 
                        {xtype: 'textfield', id:'uname',readOnly:true,fieldLabel: '用户名',value:username,width: 325,
                         enableKeyEvents:true,
                         listeners: {
                         keydown:function(e,eOpts){
                         //backSpaceKeyEvent(e,eOpts);
                         Ext.kingyea.Sharing.backSpaceKeyEvent(e,eOpts); 
                         }
                         }
                        
                        },
                        //{ id:'upass',fieldLabel: '用户密码',value:password,width: 325 },
                        {xtype: 'textfield', id:'upass',fieldLabel: '用户密码',width: 325 },
                        {xtype: 'textfield', id:'uemail',fieldLabel: '用户邮箱',value:email,width: 325 },
                        //{ id:'ustatus',fieldLabel: '用户状态',value:status,width: 325 },
                        ustatus,
                        { xtype:'toolbar', 
width: 325,
header: false,  
border: false,  
closable: false,  
draggable: false,  
frame:false,  

items:[{xtype:'button',width:150,text:'取消',

handler:function(){
win.close();
}


},'-',

{xtype:'button',width:150,text:'确定',
handler:function(){

var username = Ext.getCmp('uname').value;
var password = Ext.getCmp('upass').value;
var email = Ext.getCmp('uemail').value;
var uid = Ext.getCmp('userid').value;
var status = Ext.getCmp('ustatus').value;
var pw=password;

if(pw == null || pw == ''){
 pw='password';
}
if(checkUser(username,pw,email)){
Ext.Ajax.request({
url: '/console/user.do?method=update_user&'+new Date(), 
params: {
uid: uid,
password: password,
username: username,
email: email,
status: status
},
success: function(response){
var text = response.responseText;
if(text != "true"){
Ext.MessageBox.alert("提示","修改用户失败!");
}else{ userListGrid.store.reload();
win.close();
}
} }); 
}
}

}] }
                    ]
                }]
            });var win = Ext.create('Ext.window.Window', {
title: '修改用户', 
layout: 'border',
width:380,
height:250,
items:[newUserform]
 
});
win.show();
return win;
}
当我点击修改按钮弹出一个修改窗口后又不小心点击了一次修改按钮,结果第一个窗口中的一些内容跑到第二个窗口中去了。
ext.window

解决方案 »

  1.   

    试试把所有控件的ID去掉,在创建控件时不到万不得已的话就不要给ID值,否则就会出现很多问题,毕竟所有页面ID值必须是唯一的。
      

  2.   

    非常感谢你的回复,在csdn问了几个问题,第一次有人回复啊!!!
    我后来是这样解决的,在handler: function(grid, rowIndex, colIndex){
    var data = store.getAt(rowIndex).data;
    if(!Ext.getCmp('updateWin')){
    createUpdateUserPanel(userListGrid,data.uid,data.username,data.password,data.email,data.status);
    }
    这里判断一下是否存在这个窗口