代码如下:
//菜单 修改昵称
var QQForm_MenuChangeNike = new Ext.menu.Item({
id:'QQForm_MenuChangeNike'
,name:'QQForm_MenuChangeNike'
,text:'修改昵称'
,checked:true
,listeners:{
'click' : function(th,e)
{
//编辑Edit
var QQForm_MenuChangeNike_TreeEditor = new Ext.tree.TreeEditor(
Ext.getCmp('QQForm_QQFriendTree')
,{
allowBlank : false
,id:'QQForm_MenuChangeNike_TreeEditor'
,cancelOnEsc : true
,listeners : {
'complete ':function(th,newName,oldName){
alert('dddd');
ModifyQQFriendName(th,node.id,NewName,node.parentNodeId);//修改名称
}
}
})
QQForm_MenuChangeNike_TreeEditor.editNode = node;
QQForm_MenuChangeNike_TreeEditor.startEdit(node.ui.textNode);
}
}
})
/*
*修改名称
*/
function ModifyQQFriendName(th,QQFriendID,NewName,ParentID)
{
alert("ssss");
var conn = new Ext.data.Connection();
conn.request({
url:'json/QQ/QQUser.aspx'
,method:'POST'
,params:{FunctionName:'ModifyQQFriend',QQFriendID:QQFriendID,UserID:'-99',UserFriendID:'-99',FriendNike:NewName,IsLeaf:'-99',ParentID:ParentID}
,success : function(responseObject){
var json = Ext.util.JSON.decode(responseObject.responseText);
if (json.success)
{
//成功提交 暂时不处理
}
else
{
Ext.Msg.alert('提示','提交数据发生错误,消息没有成功发送!');
th.cancelEdit(true);
}
}
,failure : function(responseObject){
Ext.Msg.alert('提示','提交数据发生错误,消息没有成功发送!');
th.cancelEdit(true);
}
});
th.setDisabled(true);
}
问题如下:
1。当我编辑完毕后 点击回车 却发现没有执行'complete'事件中的代码 为什么?
2。我想当编辑完毕后 取消treeEditor和tree的关联 免得点击一个节点的时候 再出现编辑框, 编辑只能通过右键菜单才能进行 如何实现呢?
[b]问题补充:[/b]
我把全部代码贴上来吧 请高手帮我看看 我主要想实现的效果是 在树上点击右键菜单中的“修改昵称” 出现treeEditor修改节点名称提交数据库 修改完毕后treeEditor不再显示 除非用户再点击右键菜单中的“修改昵称” 避免用户在树上直接点击昵称修改 请告诉我修改的方法 谢谢啦
这段代码中 还有一个错误 就是运行到
temp_Editor.startEdit(node.ui.textNode);
的时候 会报:“Microsoft JScript 运行时错误: 对象不支持此属性或方法”的错误 为什么呢?想不通 如果把TreeEditor 定义到"修改昵称"中就不会抱错
//用于智能提示显示
///
function ShowQQMenu(node,e,UserID)
{
//编辑Edit
var QQForm_MenuChangeNike_TreeEditor = new Ext.tree.TreeEditor(
Ext.getCmp('QQForm_QQFriendTree')
,{
allowBlank : false
,id:'QQForm_MenuChangeNike_TreeEditor'
,cancelOnEsc : true
,listeners : {
'complete':function(th,newName,oldName){
ModifyQQFriendName(th,node.id,NewName,node.parentNodeId);
}
}
})
//-->右键菜单
//菜单 修改昵称
var QQForm_MenuChangeNike = new Ext.menu.Item({
id:'QQForm_MenuChangeNike'
,name:'QQForm_MenuChangeNike'
,text:'修改昵称'
,checked:true
,listeners:{
'click' : function(th,e)
{
var temp_Editor = Ext.getCmp('QQForm_MenuChangeNike_TreeEditor');
temp_Editor.editNode = node;
temp_Editor.startEdit(node.ui.textNode);
}
}
})
//菜单 添加组
var QQForm_AddQQGroup= new Ext.menu.Item({
id:'QQForm_AddQQGroup'
,name:'QQForm_AddQQGroup'
,text:'添加组'
,checked:true
})
//菜单 进行聊天
var QQForm_MenuChat = new Ext.menu.Item({
id:'QQForm_MenuChat'
,name:'QQForm_MenuChat'
,text:'进行聊天'
,checked:true
,visible : false
,listeners:
{
'click':function(o,e)
{
var temp_FormQQChat = Ext.getCmp('ChatForm|'+node.id);
if (temp_FormQQChat)
{
temp_FormQQChat.setActive(true);
}
else
{
ShowCharForm(UserID, node.id,node.text);
}
}
}
})
//菜单 删除好友
var QQForm_MenuDelete = new Ext.menu.Item({
id:'QQForm_MenuDelete'
,name:'QQForm_MenuDelete'
,text:'删除好友'
,checked:true
})
var QQForm_ContextMenu = new Ext.menu.Menu({
id : 'QQForm_LeafContextMenu'
,name : 'QQForm_LeafContextMenu'
,items:[QQForm_MenuChangeNike,QQForm_MenuChat,QQForm_MenuDelete]
})
//<--右键菜单
if (node.leaf)
{
QQForm_MenuChangeNike.text = '修改昵称';
QQForm_MenuChat.setVisible(true);
QQForm_MenuDelete.setVisible(true);
QQForm_AddQQGroup.setVisible(false);
e.preventDefault();
node.select();
//var temp_QQForm_ContextMenu = Ext.getCmp('QQForm_ContextMenu');
QQForm_ContextMenu.showAt(e.getXY());
}
else
{
QQForm_MenuChangeNike.text = '修改组名';
QQForm_AddQQGroup.setVisible(true);
QQForm_MenuChat.setVisible(false);
QQForm_MenuDelete.setVisible(false);
e.preventDefault();
node.select();
QQForm_ContextMenu.showAt(e.getXY());
}
}
//-----------内部方法-----------------
/*
*修改名称
*/
function ModifyQQFriendName(th,QQFriendID,NewName,ParentID)
{
alert("ssss");
var conn = new Ext.data.Connection();
conn.request({
url:'json/QQ/QQUser.aspx'
,method:'POST'
,params:{FunctionName:'ModifyQQFriend',QQFriendID:QQFriendID,UserID:'-99',UserFriendID:'-99',FriendNike:NewName,IsLeaf:'-99',ParentID:ParentID}
,success : function(responseObject){
var json = Ext.util.JSON.decode(responseObject.responseText);
if (json.success)
{
//成功提交 暂时不处理
}
else
{
Ext.Msg.alert('提示','提交数据发生错误,消息没有成功发送!');
th.cancelEdit(true);
}
}
,failure : function(responseObject){
Ext.Msg.alert('提示','提交数据发生错误,消息没有成功发送!');
th.cancelEdit(true);
}
});
}
[b]问题补充:[/b]
再更新一边格式化的代码看看
[code="java"]//用于智能提示显示
///
function ChangeUserInfo() {
//用户名
var ChangeUserInfoForm_UserName = new Ext.form.TextField({
id: 'ChangeUserInfoForm_UserName',
fieldLabel: ' 登陆名',
allowBlank: false,
emptyText: '请填写 用户名',
maxLength: 15,
maxLengthText: '用户名长度只能在7-15之间',
minLength: 7,
minLengthText: '用户名长度只能在7-15之间',
emptyText: "请输入 用户名"
//,labelWidth:5
});
//昵称
var ChangeUserInfoForm_NikeName = new Ext.form.TextField({
id: 'ChangeUserInfoForm_NikeName',
fieldLabel: ' 用户昵称',
allowBlank: false,
emptyText: '请填写 用户昵称',
maxLength: 15,
maxLengthText: '用户昵称长度只能在1-15之间',
minLength: 1,
minLengthText: '用户昵称长度只能在1-15之间',
emptyText: "请输入 用户昵称"
});
//性别
var ChangeUserInfoForm__sex_data = [['1', '男'], ['2', '女']];
var ChangeUserInfoForm_sex_store = new Ext.data.SimpleStore({
fields: ['value', 'text'],
data: ChangeUserInfoForm__sex_data
});
var ChangeUserInfoForm_Sex = new Ext.form.ComboBox({
id: 'ChangeUserInfoForm_Sex',
hiddenName: 'ChangeUserInfoForm_Sex',
store: ChangeUserInfoForm_sex_store,
emptyText: '请选择性别',
fieldLabel: '性别',
mode: 'local',
triggerAction: 'all',
valueField: 'value',
displayField: 'text',
allowBlank: false,
width: 113,
editable: true,
hiddenName: 'value'
});
//密码
var ChangeUserInfoForm_Password = new Ext.form.TextField({
id: 'ChangeUserInfoForm_Password',
name: 'ChangeUserInfoForm_Password',
fieldLabel: '密码',
inputType: 'password',
labelWidth: 100,
allowBlank: false,
emptyText: '********',
maxLength: 10,
maxLengthText: '密码长度只能在6-10之间',
minLength: 6,
minLengthText: '密码长度只能在6-10之间',
listeners: {
'blur': function (th) {
CheckPassWord();
}
}
});
//密码确认
var ChangeUserInfoForm_ConfirmPassword = new Ext.form.TextField({
id: 'ChangeUserInfoForm_ConfirmPassword',
name: 'ChangeUserInfoForm_ConfirmPassword',
fieldLabel: '确认密码',
inputType: 'password',
labelWidth: 100,
allowBlank: false,
emptyText: '********',
maxLength: 10,
maxLengthText: '密码长度只能在6-10之间',
minLength: 6,
minLengthText: '密码长度只能在6-10之间',
listeners: {
'blur': function (th) {
CheckPassWord()
}
}
});
//邮件地址
var ChangeUserInfoForm_Mail = new Ext.form.TextField({
id: 'ChangeUserInfoForm_Mail',
fieldLabel: '邮箱',
vtype: 'email',
labelWidth: 100,
allowBlank: false,
emptyText: '请填写 邮箱',
regexText: "请输入电子邮件地址"
});
//MSN
var ChangeUserInfoForm_MSN = new Ext.form.TextField({
id: 'ChangeUserInfoForm_MSN',
fieldLabel: 'MSN',
vtype: 'email',
labelWidth: 100,
allowBlank: true,
regexText: "请输入正确的MSN地址"
});
//QQ
var ChangeUserInfoForm_QQ = new Ext.form.NumberField({
id: 'ChangeUserInfoForm_QQ',
name: 'ChangeUserInfoForm_QQ',
fieldLabel: 'QQ',
labelWidth: 100,
allowBlank: true,
maxLength: 8,
minLength: 4,
allowDecimals: false,
minValue: 1000,
minText: '请输入正确的QQ号码',
invalidText: '请输入正确的QQ号码'
});
//取消按钮
var ChangeUserInfoForm_CanelButton = new Ext.Button({
id: 'ChangeUserInfoForm_CanelButton',
text: '取消',
handler: function () {
//this.ownerCt.close();
Ext.getCmp('ChangeUserInfoForm').close();
}
})
//确定按钮
var ChangeUserInfoForm_OKButton = new Ext.Button({
id: 'ChangeUserInfoForm_OKButton',
text: '确定',
handler: function () {
Ext.getCmp('ChangeUserInfoForm').close();
}
})
//返回界面
return new Ext.Window({
id: 'ChangeUserInfoForm',
title: '修改用户信息',
frame: true,
modal: true,
width: 500
//,height:250
,
autoHeight: true
//,autoWidth:true
,
resizable: false,
items: [{
xtype: 'form',
layout: 'column',
border: false,
frame: true,
items: [{
layout: 'form',
border: false,
items: [ChangeUserInfoForm_UserName]
},
{
layout: 'form',
border: false,
items: [ChangeUserInfoForm_NikeName]
}]
},
{
xtype: 'form',
layout: 'column',
border: false,
frame: true,
items: [{
columnWidth: .5,
layout: 'form',
border: false,
items: [ChangeUserInfoForm_Password]
},
{
columnWidth: .5,
layout: 'form',
border: false,
items: [ChangeUserInfoForm_ConfirmPassword]
}]
},
{
layout: 'column',
border: false,
frame: true,
items: [{
columnWidth: .5,
layout: 'form',
border: false,
items: [ChangeUserInfoForm_Sex]
},
{
columnWidth: .5,
layout: 'form',
border: false,
items: [ChangeUserInfoForm_Mail]
}]
},
{
layout: 'column',
border: false,
frame: true,
items: [{
columnWidth: .5,
layout: 'form',
border: false,
items: [ChangeUserInfoForm_MSN]
},
{
columnWidth: .5,
layout: 'form',
border: false,
items: [ChangeUserInfoForm_QQ]
}]
}],
buttons: [ChangeUserInfoForm_CanelButton, ChangeUserInfoForm_OKButton]
})
}[/code]
[b]问题补充:[/b]
刚才那个错了 是这个
[code="java"]//用于智能提示显示
///
function ShowQQMenu(node, e, UserID) {
//编辑Edit
var QQForm_MenuChangeNike_TreeEditor = new Ext.tree.TreeEditor(
Ext.getCmp('QQForm_QQFriendTree'), {
allowBlank: false,
id: 'QQForm_MenuChangeNike_TreeEditor',
cancelOnEsc: true,
listeners: {
'complete': function (th, newName, oldName) {
ModifyQQFriendName(th, node.id, NewName, node.parentNodeId);
}
}
})
//-->右键菜单
//菜单 修改昵称
var QQForm_MenuChangeNike = new Ext.menu.Item({
id: 'QQForm_MenuChangeNike',
name: 'QQForm_MenuChangeNike',
text: '修改昵称',
checked: true,
listeners: {
'click': function (th, e) {
var temp_Editor = Ext.getCmp('QQForm_MenuChangeNike_TreeEditor');
temp_Editor.editNode = node;
temp_Editor.startEdit(node.ui.textNode);
}
}
})
//菜单 添加组
var QQForm_AddQQGroup = new Ext.menu.Item({
id: 'QQForm_AddQQGroup',
name: 'QQForm_AddQQGroup',
text: '添加组',
checked: true
})
//菜单 进行聊天
var QQForm_MenuChat = new Ext.menu.Item({
id: 'QQForm_MenuChat',
name: 'QQForm_MenuChat',
text: '进行聊天',
checked: true,
visible: false,
listeners: {
'click': function (o, e) {
var temp_FormQQChat = Ext.getCmp('ChatForm|' + node.id);
if (temp_FormQQChat) {
temp_FormQQChat.setActive(true);
}
else {
ShowCharForm(UserID, node.id, node.text);
}
}
}
})
//菜单 删除好友
var QQForm_MenuDelete = new Ext.menu.Item({
id: 'QQForm_MenuDelete',
name: 'QQForm_MenuDelete',
text: '删除好友',
checked: true
})
var QQForm_ContextMenu = new Ext.menu.Menu({
id: 'QQForm_LeafContextMenu',
name: 'QQForm_LeafContextMenu',
items: [QQForm_MenuChangeNike, QQForm_MenuChat, QQForm_MenuDelete]
})
//<--右键菜单
if (node.leaf) {
QQForm_MenuChangeNike.text = '修改昵称';
QQForm_MenuChat.setVisible(true);
QQForm_MenuDelete.setVisible(true);
QQForm_AddQQGroup.setVisible(false);
e.preventDefault();
node.select();
//var temp_QQForm_ContextMenu = Ext.getCmp('QQForm_ContextMenu');
QQForm_ContextMenu.showAt(e.getXY());
}
else {
QQForm_MenuChangeNike.text = '修改组名';
QQForm_AddQQGroup.setVisible(true);
QQForm_MenuChat.setVisible(false);
QQForm_MenuDelete.setVisible(false);
e.preventDefault();
node.select();
QQForm_ContextMenu.showAt(e.getXY());
}
}
//-----------内部方法-----------------
/*
*修改名称
*/
function ModifyQQFriendName(th, QQFriendID, NewName, ParentID) {
alert("ssss");
var conn = new Ext.data.Connection();
conn.request({
url: 'json/QQ/QQUser.aspx',
method: 'POST',
params: {
FunctionName: 'ModifyQQFriend',
QQFriendID: QQFriendID,
UserID: '-99',
UserFriendID: '-99',
FriendNike: NewName,
IsLeaf: '-99',
ParentID: ParentID
},
success: function (responseObject) {
var json = Ext.util.JSON.decode(responseObject.responseText);
if (json.success) {
//成功提交 暂时不处理
}
else {
Ext.Msg.alert('提示', '提交数据发生错误,消息没有成功发送!');
th.cancelEdit(true);
}
},
failure: function (responseObject) {
Ext.Msg.alert('提示', '提交数据发生错误,消息没有成功发送!');
th.cancelEdit(true);
}
});
}[/code]