韩吉顺最新消息:局部刷新树 Ext

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 14:07:52
两个iframe,左边是一棵树,右边是树对应操作的页面..在右边新增一个节点,左边树要能局部刷新..将新的节点展现,并且是在当前节点,而不是回到根..
在右边的iframe应该添加什么脚本  能让树局部动态刷新啊?



// panel默认加载URL,记录当前panel所加载的URL
var url = "knowledge!showKnowLedgePage.do";

Ext.onReady(newViewPort);

// 新建子类对象
var subTypeWin;
var subTypeForm;

// 新建知识对象
var knowLedgeWin;
var knowLedgeForm;

// 当前选择的节点
var currentNode;

var treeLoad = new Ext.tree.TreeLoader({url:"knowledge!getTreeNode.do"});

function newViewPort() {
new Ext.Viewport({
enableTabScroll : true,
layout : "border",
items : [tree, panelCenter]
});
}


var tree = new Ext.tree.TreePanel({
id : "westTreePanel",
width : 200,
align : 'left',
autoScroll : true,
animate : true,
enableDD : false,
containerScroll : true,
rootVisible : true,
lines : true,
frame : true,
// collapsible : true,
singleClickExpand : false,// 支持单击展开
region : 'west',
margins : '0 0 5 5',
cmargins : '0 5 5 5',
split : true,
border : true,
maxWidth : 200,
minWidth : 20,

root : {
text : '知识管理',
id : '0',
nodeType : 'async',
expanded : true
},

listeners : {
'click' : function(node, e) {
currentNode = node;
if(node.id==this.getRootNode().id){
  open(url,'rightContentFrame','');
      //panelLoad(panelCenter, url);
}
node.expand();
},
'dblclick' : function(node, e) {
//node.expand();
}
},

loader : treeLoad
});

var panelCenter = new Ext.Panel({
id : "panelCenter",
region : 'center',
autoScroll : true
});

function panelLoad(panel, url) {
if (panel != undefined) {
panel.load({
url : url,
text : "正在加载,请稍候……",
nocache : true,
scripts : true
});
}
}

/**
* 新建子类窗口
*/
function openSubTypeWin() {
if (subTypeWin == undefined) {
subTypeWin = new Ext.Window({
height : 300,
width : 500,
title : '知识库管理',
closeAction : 'close',
modal : true,
items : [getSubTypeForm()],
listeners : {
"beforedestroy" : function(obj) {
obj.hide();
return false;
}
}
});
} else {
subTypeWin.hide();
}
subTypeWin.show();
};

/**
* 获取创建子类别Form
*
* @return
*/
function getSubTypeForm() {
if (subTypeForm == undefined) {
subTypeForm = new Ext.FormPanel({
id : 'subTypeForm',
height : 300,
frame : true,
items : [{
columnWidth : .2,
buttonAlign : 'center',
defaultType : 'textfield',
layout : 'form',
items : [{
fieldLabel : '类别名称',
name : 'name',
anchor : '95%',
allowBlank : false,
emptyText : '请填写类别名称'
}, {
fieldLabel : '类别描述',
xtype : 'textarea',
name : 'desc',
anchor : '95%',
allowBlank : true
}],
buttons : [{
text : "提交",
handler : function() {
if (subTypeForm.getForm().isValid()) {
subTypeForm.getForm().submit({
url : "knowledge!createChildNode.do",
params : {
id : nodeId
},
success : function(response,
options) {
subTypeForm.getForm().reset();
// 重新加载数据
subTypeWin.hide();
currentNode.reload();
}
});
}
}
}, {
text : "重置",
handler : function() {
subTypeForm.getForm().reset();
}
}]
}]
});
}
return subTypeForm;
}

/**
* 新建知识窗口
*/
function openKnowLedgeWin() {
if (knowLedgeWin == undefined) {
knowLedgeWin = new Ext.Window({
height : 300,
width : 350,
title : '编辑',
closeAction : 'close',
modal : true,
items : [getKnowLedgeForm()],
listeners : {
"beforedestroy" : function(obj) {
obj.hide();
return false;
}
}
});
} else {
knowLedgeWin.hide();
}
knowLedgeWin.show();
};

/**
* 新建知识Form
*
* @return
*/
function getKnowLedgeForm() {
if (knowLedgeForm == undefined) {
knowLedgeForm = new Ext.FormPanel({
id : 'knowLedgeForm',
height : 300,
frame : true,
items : [{
columnWidth : .2,
defaultType : 'textfield',
layout : 'form',
items : [{
fieldLabel : '所属类别',
name : 'parentName1',
anchor : '95%'
}, {
fieldLabel : '标题',
name : 'title',
anchor : '95%',
allowBlank : false,
emptyText : '请填写知识标识'
}, {
fieldLabel : '关键字',
name : 'keywords',
anchor : '95%',
allowBlank : true
}, {
fieldLabel : '描述',
name : 'desc',
anchor : '95%',
allowBlank : true
}, {
fieldLabel : '内容',
name : 'content',
anchor : '95%',
allowBlank : true
}],
buttons : [{
text : "提交",
handler : function() {
if (knowLedgeForm.getForm().isValid()) {
knowLedgeForm.getForm().submit({
url : "knowledge!createChildNode.do",
params : {
nodeId : nodeId
},
success : function(response,
options) {
// 重新加载数据
}
});
}
}
}, {
text : "重置",
handler : function() {
knowLedgeForm.getForm().reset();
}
}]
}]
});
}
return knowLedgeForm;
}

function createKnowLedge() {
vurl = "knowledge!add.do?id="+currentNode.id;
panelLoad(panelCenter, vurl);
}

function createKnowLedge1() {
vurl = "knowledge!add1.do?id="+currentNode.id;
panelLoad(panelCenter, vurl);
}

function queryKnowLedge() {
vurl = "knowledge!fullTextSearch.do";
panelLoad(panelCenter, vurl);
}

function queryKnowLedge1() {
vurl = "knowledge!fullTextSearch1.do";
panelLoad(panelCenter, vurl);
}

function queryResult(){
vurl="knowledge!query.do?query=4";
panelLoad(panelCenter, vurl);
}

思路:你肯定是单击左边树后右边才会有变化,然后你在右边做某些动作后,你想办法获得左边树的当前节点,在当前节点下添加一个node对象,改变当前节点的状态(leaf转变为文件夹)