如何用jquery.treeview生成动态的树?在线等。。。。

努力 2010-09-20 03:02:13
如何用jquery.treeview生成动态的树,我的意思是后台传值到前台去。说个思路也行。最好有伪代码、
比如:类目+
-类目1
-类目2

我在线等呀。。。。。急
...全文
230 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
零起跑线 2010-09-25
  • 打赏
  • 举报
回复
再加几句,代码是先序遍历树的,至于如何查sql,你得把表结构晒一晒了
零起跑线 2010-09-25
  • 打赏
  • 举报
回复
我代码是通过一个树型数据结构产生一个<ul><li>形式的树形结构,也就是你说的<ul><li>字符串了,树形数据结构我想你应该会吧?
[Quote=引用 4 楼 lg312200538 的回复:]
2楼的兄弟,我没看懂。
我想要的是用<ul>和<li>组成的String字段,我的数据表字段有:id,parent_id,name;想得到是的name组
成的列表结构。现在最想要的是如何写这个树形的sql.在线等。。。。。
[/Quote]
零起跑线 2010-09-21
  • 打赏
  • 举报
回复
嘿嘿,前不久由于应用需要刚写过一个,不过是一次性生成的,不是点哪个生成哪个,
RestTree[]是一个森林结构,代码应该还是比较好理解的,效率方面也有待改进
    


//由ResTree[]产生以<ul><li>嵌套成的树,可以供jquery.treeview使用
public String getTreeView(ResTree[] roots){
StringBuffer list = new StringBuffer(6500);
if(roots != null){
ResTree[] nodes;
ResTree node;
Stack stack = new Stack();
stack.push(null);//标记同一层的子结点遍历完,可以加</ul>结束
for(int i = roots.length -1; i >= 0; i--){
stack.push(roots[i]);
}
list.append("<ul id='tree' class='treeview filetree'>");
while(!stack.empty()){
node = (ResTree)stack.pop();
while(node == null && !stack.empty()){
//说明已经遍历完同一层的结点
list.append("</ul></li>");
node = (ResTree)stack.pop();
}
if(stack.empty()){
break;
}


nodes = node.getChild_list();
if(nodes != null && nodes.length > 0){
//有孩子结点要遍历,把结点存放到堆栈中,并加入<ul>表示另外开启一层结点
stack.push(null);
list.append("<li><a href='javascript:void(0);' >").append(node.getName()).append("</a><ul>");
for(int i = nodes.length - 1; i >= 0; i--){
stack.push(nodes[i]);
}
}else{
//无孩子结点
list.append("<li><a href='javascript:void(0);' >").append(node.getName()).append("</a></li>");
}
}
list.append("</ul>");
}
return list.toString();
}
努力 2010-09-21
  • 打赏
  • 举报
回复
2楼的兄弟,我没看懂。
我想要的是用<ul>和<li>组成的String字段,我的数据表字段有:id,parent_id,name;想得到是的name组
成的列表结构。现在最想要的是如何写这个树形的sql.在线等。。。。。
努力 2010-09-20
  • 打赏
  • 举报
回复
顶,大家有会的吗?
jquerytreeview 在显示大层次是会卡死浏览器,我结合http://www.cnblogs.com/xuanye/archive/2009/10/26/1590250.html的改进版做的这个改进版(因为很多人没读他的源码,不知道怎么请求节点的处理页面),把asp.net的json序列化 都做了进去(Newtonsoft.jsonnet2.0.dll),,采用ajax+wrapperpage+usercontrol的模式生成json(因为牵涉公司两个配置文件,必须读配置信息连接数据库,绕了一下其实可以更轻量级的handler来处理,例子不能运行,但可以看看),同时扩展了很多的配置项都有说明,希望对大家有帮助 使用例如: <script src="lib/jquery/jquery.js" type="text/javascript"> <script src="lib/jquery/plugins/treeview/js/common.js" type="text/javascript"> <script type="text/javascript"> var checknodes = "HJH8,HJA5"; //你事先要传给控件的 已选中节点 id $(document).ready(function() { var o = { isAsync: false, //是否异步获取节点,根据咱的要求 设为false url: "AjaxWrapperPages/AsyncGetTreeNodes.aspx", //请求节点的页面,如果没有改变文件路径 不用关心 cbiconpath: "lib/jquery/plugins/treeview/images/icons/", //同上 checkbox icon的目录位置 //icons: ["checkbox_0.gif", "checkbox_1.gif", "checkbox_2.gif"],//不用配置 emptyiconpath: "lib/jquery/plugins/treeview/images/s.gif", //checkbxo三态的图片 animate: true, //不用配置,动画没有效果 theme: "bbit-tree-lines", //bbit-tree-lines ,bbit-tree-no-lines,bbit-tree-arrows有线、没线、箭头 三个样式中选择 showcheck: true //是否显示复选框 , checkNodes: checknodes //上面 你事先要传给控件的 已选中节点 id的变量 , rootText: "中石化单位"//根节点的文本 可为空 则没有根节点 建议起个有意义的名字描述这棵 //,onnodeclick: function(item) { alert(item.text); } , dbconfigPath: "~/hanwayDbConfig.hwdb" //可去掉,这是我做测试用 可不用此配置 , conStr: "conStr" //连接字符串 你可直接传,考虑安全 可不用此配置 /************ 必填项 ****************/ , sqlPath: "~/Db.hwSql" //sql语句存放的文件位置 , sqlID: "dwdyinfo" //sql对应的sqlid , dtFields: "dm,zhdm,mc" //表的结构 控件之关心3个:“主键id 外(父)键id 节点文本” 依次','分开 , pnodeMark: "dyzhgx" //和上面的dtFields中的外键 用来构造过滤条件 如"zhdm='dyzhgx'" 查询出所有一级节点 }; $("#tree").treeview(o); //到服务器处理选中节点 $("#showchecked").click(function(e) { var changnodes = $("#tree").getTSVs(); //得到所有选中节点的id if (changnodes != null) { changnodes = changnodes.join(","); $.ajax({ type: "get", url: "some.aspx", data: "nodes="+changnodes, success: function(msg) { alert("Data Saved: " + msg); } }); } });

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧