`
yqfly2008
  • 浏览: 17360 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

EXT 动态树(EXT学记)

阅读更多
有时候我们不希望一开始就取得整个树的数据然后初始化树,而是希望只取得一小部分数据,随着用户对树的操作,在需要的时候再从服务器取得后续的数据,展现相应的树结构,使用ExtJS的有关组件,我们可以很方便地做到这一步。

客户端的代码如下:
Js代码
Ext.onReady(function() {  
            var root = new Ext.tree.AsyncTreeNode({  
                        id : "root",  
                        text : "树的根" 
                    });  
 
            var loader = new Ext.tree.TreeLoader({  
                        url : '/extapp/Tree' 
                    });  
 
            loader.on("beforeload", function(loader, node) {  
                        loader.baseParams.nodeId = node.id;  
                    });  
 
            var tree = new Ext.tree.TreePanel({  
                        renderTo : "tree",  
                        root : root,  
                        loader : loader,  
                        width : 200,  
                        height : 300  
                    });  
        }); 

Ext.onReady(function() {
var root = new Ext.tree.AsyncTreeNode({
id : "root",
text : "树的根"
});

var loader = new Ext.tree.TreeLoader({
url : '/extapp/Tree'
});

loader.on("beforeload", function(loader, node) {
loader.baseParams.nodeId = node.id;
});

var tree = new Ext.tree.TreePanel({
renderTo : "tree",
root : root,
loader : loader,
width : 200,
height : 300
});
});


其中:
1 需要动态加载的节点要定义为AsyncTreeNode
2 使用TreeLoader从服务器加载数据,本例中服务器为映射到/extapp/Tree的一个Servlet
3 对TreeLoader添加"beforeload"事件,在每次发起request前,设置一个参数,参数就是loader.baseParams后面定义的nodeId,因为我们要根据不同的节点取得不同的子节点数据,所以把节点的id作为参数传给后台。

后台的servlet的doPost是这样的:
Java代码
protected void doPost(HttpServletRequest request,  
        HttpServletResponse response) throws ServletException, IOException {  
 
    try {  
        Thread.sleep(1000);  
    } catch (InterruptedException e) {  
        e.printStackTrace();  
    }  
      
    StringBuilder sb = new StringBuilder();  
    String nodeId = request.getParameter("nodeId");  
    if (nodeId != null) {  
        if (nodeId.equals("root")) {  
            sb.append("[{");  
            sb.append("  id: 1,");  
            sb.append("  text: '子节点1',");  
            sb.append("  leaf: true");  
            sb.append("},{");  
            sb.append("  id: 2,");  
            sb.append("  text: '儿子节点2',");  
            sb.append("  leaf: false");  
            sb.append("}]");  
        } else if (nodeId.equals("2")) {  
            sb.append("[{");  
            sb.append("  id: 3,");  
            sb.append("  text: '孙子节点',");  
            sb.append("  leaf: true");  
            sb.append("}]");  
        }  
    }  
    PrintWriter out = response.getWriter();  
    out.print(sb.toString());  


protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

StringBuilder sb = new StringBuilder();
String nodeId = request.getParameter("nodeId");
if (nodeId != null) {
if (nodeId.equals("root")) {
sb.append("[{");
sb.append("  id: 1,");
sb.append("  text: '子节点1',");
sb.append("  leaf: true");
sb.append("},{");
sb.append("  id: 2,");
sb.append("  text: '儿子节点2',");
sb.append("  leaf: false");
sb.append("}]");
} else if (nodeId.equals("2")) {
sb.append("[{");
sb.append("  id: 3,");
sb.append("  text: '孙子节点',");
sb.append("  leaf: true");
sb.append("}]");
}
}
PrintWriter out = response.getWriter();
out.print(sb.toString());
}


后台很简单:
1 那段延时是为了在前台看出加载等待效果的
2 根据request的参数nodeId的不同,返回不同的子节点数据。当然实际应用当中这些数据一般是根据数据库中的数据生成的,这里略去了。

原文出处:http://www.iteye.com/topic/441349
分享到:
评论

相关推荐

    《学记》原文及白话解另附评注[归类].pdf

    "《学记》原文及白话解另附评注[归类].pdf" 本篇文章主要讨论学习的重要性、教学的方法和目的,以及大学教育的道理。以下是从文章中提炼出的知识点: 一、学习的重要性 * 《学记》强调学习的重要性,认为学习是化...

    《学记》原文及注释、解读[参考].pdf

    "《学记》原文及注释、解读[参考]" 《学记》原文及注释、解读是中国教育史上最早、最完善的极为重要的教育理论专著,也是世界上最早的教育专著。该书从教育目的、教育原则、教学原则、教学方法、教师和学生、教学...

    《学记》读书笔记_心得感悟五篇范文.doc

    《学记》读书笔记_心得感悟五篇范文.doc

    《学记》的“深度学习”教学意蕴研究.pdf

    《学记》是中国古代教育的经典著作,其对教学方法和理念的探讨至今仍具有深远的启示。深度学习作为现代教育理论中的一个重要概念,虽然源自计算机科学、神经网络和人工智能领域,但其实质与《学记》中提倡的教学理念...

    《学记》读书笔记_心得感悟五篇范文精选.doc

    《学记》读书笔记_心得感悟五篇范文精选.doc

    学记原文及翻译.doc

    《学记》是中国古代教育理论的重要篇章,源自《礼记》一书,据推测可能由孟子的学生乐正克撰写。这部作品集中讨论了教育的目的、原则、方法、教师与学生的关系、教育制度以及教学管理等多个方面的问题。尽管距今已有...

    学记全文及译文.doc

    学记全文及译文.doc

    学记中的学习观与现实意义.doc

    《学记》是我国古代教育的经典之作,其对学习观的阐述具有深远的影响力。在现代教育背景下,我们可以通过“自主”“合作”“探究”的维度来理解和应用《学记》中的学习理念,以促进教育的创新和发展。 首先,自主...

    《礼记_学记》讲解_黄能武老师.doc

    《礼记·学记》是汉代编纂的一部儒家经典,属于三礼之一的《礼记》中的重要篇章。《礼记》是儒家思想和礼仪论著的选编,探讨了礼的本质和应用,而《学记》则是世界上最早的一篇较为系统的教育论著,被誉为中国的教育...

    《礼记·学记》原文.doc

    《礼记·学记》是中国古代一部重要的教育经典,它主要阐述了教育的功能、方法、目标和作用。本文档详细解读了《礼记·学记》的部分内容,着重强调了教育的重要性及其对个人和社会的深远影响。 首先,文档指出教育的...

    2020江西教师资格证考试:《学记》中的教育思想归纳.pdf

    《学记》是中国古代乃至世界上最早的专门探讨教育与教学问题的论著,它收录于《礼记》中,成书于战国晚期。据历史学家郭沫若的研究,该书的作者可能是孟子的学生乐正克。《学记》以其深邃的教育理念和丰富的教育实践...

    行业教育软件-学习软件-西游学记 1.0.zip

    《西游学记》是一款专为行业教育设计的学习软件,其1.0版本的发布旨在提供一个寓教于乐、互动性强的学习平台。这款软件融合了中国古代经典名著《西游记》的故事背景,通过游戏化的方式,使用户在轻松愉快的氛围中...

    教师资格考试:《学记》中的教育思想定稿.pdf

    《学记》是中国古代乃至世界上最早的教育论著,属于《礼记》中的一篇,成书于战国晚期,作者可能是孟子的学生乐正克。这篇著作以言简意赅的文字和生动的比喻,系统地阐述了教育的目标、原则、方法、教师的地位以及...

    【张孝祥太平州学记,阅读答案附翻译】 太平州学记.docx

    【张孝祥太平州学记】是一篇记载宋朝张孝祥关于太平州学修建的文章。这篇文章描绘了王侯秬在太平州任太守期间,面对水灾、边事等多重困难,依然重视教育,重建州学的过程。文章强调了学校在社会中的重要地位,以及...

    《学记》注解[参考].pdf

    《学记》是中国古代一部关于教育的经典文献,其内容涵盖了教育的重要性、教学方法以及教育的目标等方面,对于现代软件开发行业同样具有深远的启示。以下是对《学记》中相关知识点的详细解读: 1. 教育与社会的关系...

    《学记》对高职语文教育的启示.doc

    《学记》对高职语文教育的启示.doc

    学习总结-《礼记·学记》详细解析.docx

    《礼记·学记》是中国古代一部重要的教育经典,它探讨了教育的本质、目标和方法。在《学记》中,教育被视为社会变革和文化传承的重要手段,对于个人和社会的发展有着深远的影响。 首先,文中提到“君子如欲化民成俗...

    教学之兴废:《学记》关于教学规律的探寻及其价值

    《学记》是对先秦儒家教学思想的理论总结,对教学成功与失败的规律进行了高度概括。认为“豫、时、孙、摩”,是教学取得成功的必要条件。相反,“发然后禁”“时过然后学”“杂施而不孙”“独学而无友”“燕朋”与“燕...

    初中语文 古诗文赏析 李觏《袁州州学记》原文、注释、译文及赏析.doc

    《袁州州学记》是北宋学者李觏的一篇散文,记录了他在仁宗年间对袁州州学重建过程的记述以及对教育意义的深刻阐述。这篇文章体现了李觏对于教育重要性的认识,以及他对官员如何履行教育职责的期待。 文章首先介绍了...

    虹鸟教基学练记考(第二节)-- 令人发懵的《学记》教育思想

    虹鸟教基学练记考(第二节)-- 令人发懵的《学记》教育思想

Global site tag (gtag.js) - Google Analytics