trh3037 2010-04-23 16:45
浏览 359
已采纳

两个iframe,左边是一棵树,右边是树对应操作的页面..在右边新增一个节点,左边树要能局部刷新..将新的节点展现,并且是在当前节点,而不是回到根..

两个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);
}

  • 写回答

1条回答 默认 最新

  • zhoujuan520 2010-04-23 22:09
    关注

    且不去看你的代码,因为这让我头晕

    给你一些思路希望能够对你有用

    [quote]两个iframe,左边是一棵树,右边是树对应操作的页面..在右边新增一个节点,左边树要能局部刷新..将新的节点展现,并且是在当前节点,而不是回到根..
    在右边的iframe应该添加什么脚本 能让树局部动态刷新啊? [/quote]

    首先放弃使用iframe,因为iframe不好控制,不好传递参数以及对象关联等.

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

    只能给你思路了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机