下面是我的代码与运行结果截图:
{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
{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
我后来是这样解决的,在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);
}
这里判断一下是否存在这个窗口