对Javascript的ExtJS框架的数字面板treepanel的使用实例分析

在ExtJS,它是否是一个叶节点或一个非叶节点,节点是用来表示树的节点。在ExtJS,有两种类型的树节点,一个节点是一个常见的简单的树节点,定义的Ext.tree.TreeNode,和其他的树节点的子节点的信息需要异步加载,这是由Ext.tree.AsyncTreeNode。

在数据中,文本显示文本、叶节点、子子节点、展开展开。




代码ext.create('ext.data TreeStore,{。
根:{
扩大:真实,
孩子们:{
{文本:学习,叶子:真},
{文本:作业,展开:正确,儿童:{
{英文,叶:真},
{代数,叶:真}
} },
文本:托福,叶:真}
}
}
});



treepanel读取JSON数据从servlet

来自于服务器端的动态程序通常是从树的JS中获得的数据。

要获得数据,我们首先可以对返回到JSON的servlet前台写一个树形访问:

服务器端servlet代码:




进口;

进口java.io.printwriter;

进口javax.servlet.http.httpservletrequest;

进口javax.servlet.http.httpservletresponse;

进口javax.servlet.servletexception;

进口javax.servlet.http.httpservlet;

公共课treenodeservlet扩展HttpServlet {

protected void服务(HttpServletRequest的要求,HttpServletResponse抛出IOException {返回的响应),

response.setcontenttype(文本/ HTML;字符集= UTF-8);

这是一套在ID的节点/ asynctreenode形成前,看到下面的JS程序

字符串TreeNode = request.getparameter(节点);

字符串JSON;

PrintWriter = response.getwriter();

如果(0 等于(树)){

JSON + ={ {编号:1,文字:'0-1},{编号:2,文字:'0-2} };

}

如果(1 等于(树)){

JSON + ={ {编号:11,文字:'0-1-1,叶:真},{编号:12,文字:'0-1-2,叶:真} };

}

如果(2 等于(树)){

JSON + ={ {编号:21,文字:'0-2-1},{编号:22,文字:'0-2-2,叶:真} };

}

如果(21 等于(树)){

JSON + ={ {编号:211,文字:'0-2-1-1,叶:真},{编号:212,文字:'0-2-1-2,叶:真} };

}

out.write(JSON);

}

}




现在你可以使用上面创建的装载方法,是通过在前台treepanel设置servlet。代码如下:

客户端显示代码




Ext.onReady(function(){()

VAR树=新ext.tree.treepanel({

在这里,div树是一个用HTML id创建的对象。

EL:'div-tree,

使用装载方法访问treenodeservlet / /

装载机:新ext.tree.treeloader({ dataurl:.. / treenodeservlet})

});

VaR根=新ext.tree.asynctreenode({编号:'0',文本:0})

Tree.setRootNode(根);

Tree.render();

Root.expand();

});




结果如下:







Drag and drop nodes between tree TreePanel

有时我们需要把程序中的一个元素到另一棵树TreePanel,在TreePanel,如果启用参数将在同一棵树在组件的设置是正确的,并且需要将书的不同元素之间的现在,这个时候你可以用参数enabledrag组件和enabledrop集。下面的例子:

1。编写js代码:

JS代码




Ext.onReady(function(){()

VAR树=新ext.tree.treepanel({
EL:'tree1,
/ /这里真的enabledrag可以拖动元素从这里到别的地方
EnableDrag:true,
装载机:新ext.tree.treeloader({ dataurl:'treedata1 .txt})
});
无功tree2 =新ext.tree.treepanel({
EL:'tree2,
/ /这里真的enabledrop可以放在这棵树上拖动元素
EnableDrop:真的,
装载机:新ext.tree.treeloader({ dataurl:'treedata2 .txt})
});
VAR方程的系数=新ext.tree.asynctreenode({文本:}节点);
无功root2 =新ext.tree.asynctreenode({文本:}书);
tree1.setrootnode(方程的系数);
tree2.setrootnode(root2);
tree1.render();
tree2.render();

});




的2.html代码如下:

HTML代码









三.写两treeloader文件需要加载,在JSON格式的数据:

treedata1.txt:


{
{文本:无叶节点},
{文本:'leaf节点,叶:true}
}
treedata2.txt:

{
{文字:电脑,孩子们:{
{文本:'java,儿童:{
{文本:'java核心技术,叶:true},
{文本:思想在java,叶:true}
} },
以{文字介绍:'algorithms,叶:true}
} },
{文本:马,孩子们:{
{理论基础,叶:真},
{文本:'carle决明子古典吉他教程,叶:true}
} }
}




4。该程序的效果如下图所示: