今天给各位分享javascript树形控件大集合的知识,其中也会对js处理树形结构类数据进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、如何用js实现select下拉框里是树形结构,可复选,select框中传复选所有值?如下图所示。2、关于jquery的easyUI树形控件问题3、请教jstree的一些用法4、求一个JS树控件 asp.net中使用 每个节点右边有按钮的那种5、用javascript 树形菜单(可拖动效果)6、javascript实现动态加载树形菜单(tree),
如何用js实现select下拉框里是树形结构,可复选,select框中传复选所有值?如下图所示。
首先说树形结构,国内有个开源的js控件叫zTree,支持复选。
然后下拉框你可能需要自己做一个(html输入框+右边的一个图标按钮)。
最后,用一个隐藏的div把树形结构包起来,这个div设置成绝对定位,在下拉框右侧选择按钮的单击事件处理函数里,显示这个隐藏的div,并把它的位置设置成在下拉框下面就行了。
思路就是这样,要么楼主可以找找有没有其他更现成的控件,extjs4我记得有类似的,但是他的复选功能不太符合中国习惯,也许现在的版本改好了,你可以查查试试看。
关于jquery的easyUI树形控件问题
ComboTree的数据结构和Tree一样
每个node节点都有这些属性,你想把QUERY_t#deleteFlag_I_EQ和QUERY_t#type_S_EQ两个属性放进去,可以放到attributes中形如:
attributes:[{
QUERY_t#deleteFlag_I_EQ:“具体值”,
QUERY_t#type_S_EQ:”具体值”
}]
当然这种形式的数据要你自己转换成json类型的。
不能解决可以提问,互相探讨,希望可以帮到你!
请教jstree的一些用法
JsTree是一个基于JQuery的框架,实现简单,功能比较齐全。项目中急于修改树控件,现学现卖,实现了简单的功能,仅包含异步加载,动态设置节点样式图标,靠着自己看帮助文档,多次尝试一步步完成。
1. 实现异步加载
$(“#tvBox”).tree({
data : {
async : true,
type : “xml_flat”,
[color=red]opts : {
url : URL
}
},
types : {
“default” : {
renameable : false,
deletable : false,
creatable : false,
draggable : false
}
},
ui:{
theme_name : “classic”
},
callback : {
beforedata : function(NODE, TREE_OBJ) {
setParams(NODE, TREE_OBJ); // 获取参数信息
//向服务器传递参数
return { type : type_id, dyj : dyj_id, bdz : bdz_id, jg : jg_id, ept : ept_id }
},//end beforedata
onselect : function(NODE, TREE_OBJ) { // 单击函数,点击设备节点名称的时候在右边显示信息
setParams(NODE, TREE_OBJ); // 获取参数信息
var ids = $(NODE).attr(“id”).split(“-“);
// alert(ids[6]);
var subType = ids[1];
var dydj = ids[2];
//alert(type_id+” — “+ept_id);
var nodeParam=”type=”+type_id+”subType=”+subType+”bdz=”+bdz_id+”dydj=”+dydj+”ept=”+ept_id;
if (type_id == EptType.dyj) {//点击的是电业局节点
var dyj_url = “pages/omds/ept/dyj/dyj.jsp?dyj=”+dyj_id+””+nodeParam;
//alert(dyj_url+” — “+dyj_name);
top.doCreateTabItem(dyj_url,
dyj_name,
dyj_url+”random=”+Math.random(),
dyj_name);//在’主页’标签中显示
}
}, //end onselect
// 只在树第一次加载的时候调用
onload : function(TREE_OBJ) {
$(“#tvBox ul li a:first-child ins”).hide(); //电业局节点不显示图标
}
}// end callback
}); // end tree()
JsTree支持多种格式的数据源,这里使用了xml格式,其实json格式更好。data中代码即可实现异步加载,通过设置UI参数可以修改主题,callback参数可以对一些事件作出响应,如beforedata可以在发送异步请求之前添加url参数,onselect可以响应生成的树中节点的单击事件,还有open在节点被打开的时候被调用,等等,可以帮助实现很多功能……
–1 碰到比较麻烦的事情是展开子节点向后台传递参数时需要用到父节点的id等信息,需要用到parent函数。
–2 另外,当展开一个节点从后台没有查询到子节点时需要返回root/root,不能使root,我当时用jdom生成xml碰到后者,出现了问题。
–3 callback中的事件需要自己去尝试才能知道什么时候被触发
2. 实现节点换肤
项目中涉及到得是电业局–变电站–间隔–设备,对于后三者节点图标必须与其状态对应,且状态是动态的,所以需要后台在生成xml的时候设置icon属性
求一个JS树控件 asp.net中使用 每个节点右边有按钮的那种
1.1.创建一棵树
2.使用如下方式
3.var tree=new JsTree(‘DivId’);
4.说明,html的body里面必须事先有id为’DivId’的层。
5.这棵树将在此渲染。
6.2.创建节点
7.var node1=new JsNode(“nodeid”);
8.树在以一始不能渲染,要渲染必须设置它的根
9.用下面的语法:
10.tree.setRoot(node1); // 这样就将node1设置成了它的根,div已经被渲染。
11.以后只要按照一棵树的形态加入节点就可以了。
12.如下所示:
13. var tree=new JsTree(“div1”);
14. var root=new JsNode(“root”); //root为节点的ID
15. root.text=”刘u22791 “; //设置节点显示的文本,也可以是超链接,html代码 等,要是不设置这个属性,树就显示它的Id
16. root.hasCheckBox=true; //设置了这个属性以后,节点就还有一个CheckBox
17. tree.setRoot(root); //根节点的属性设置好以后才能将它给树对象
18. var n1=new JsNode(“张u-26402 “);
19. var n2=new JsNode(“关u32701 “);
20. var n3=new JsNode(“赵u20113 “);
21. var n4=new JsNode(“将”);
22. var n5=new JsNode(“将”);
23. var n6=new JsNode(“兵”);
24. var n7=new JsNode(“兵”);
25. var n8=new JsNode(“兵”);
26. root.add(n1);
27. root.add(n2);
28. n2.add(n4); //这些方法,就将1个节点添加它的子节点
29. n2.add(n5);
30. n4.add(n6);
31. n4.add(n7);
32. n1.add(n8);
33. root.add(n3);
34.这样就能动态的构建树了
35.
36.下面提供一些全局API,直接使用这些方法
37.getAllTrees() 获得所有的树对象,一个html上面可能有很多树
38.getTreeByDivId(divid) 通过树注册的divId获得这棵树
39.getNodeById(nid) //通过节点Id,从所有的树中查找一个节点对象,找到就返回,找不到返回null
40.checkCbo(node) 选中这个节点的CheckBox
41.checkCboById(nodeid) 通过节点的Id来选中起CheckBox
42.cancelCbo(node) 取消对Checkbox的选中
43.cancelCboById(nid) 通过节点id取消对Checkbox的选中
44.closeThis(node) 关闭节点
45.openThis(node) 打开
46.closeNodeById(nid) 通过节点Id关闭
47.openNodeById(nid) 通过Id节点打开
48.
49.下面是树对象的API
50.getById(key) // getNodeById
51.removeNode(node) // 核心方法
52.getCheckedNodesXml() /// 对外 API
53.getCheckedNodes() /// 对外 API
54.showText()//////对外 API
55.showId()//对外 API
56.上面的方法 如此使用 var arr=tree.getCheckedNodes();这样就得到了所有的选中节点。
用javascript 树形菜单(可拖动效果)
然后根据鼠标左键在菜单坐标内按下放开的事件提取当前鼠标的x,y坐标,然后修改属性菜单的top和left属性 或者当鼠标在菜单坐标内按下之后触发鼠标的移动事件,然后在移动事件里设置菜单的top和left对应鼠标当前坐标y和x,这样当鼠标移动时菜单的坐标也会根本改变,实现同步移动
javascript实现动态加载树形菜单(tree),
页面既然得到从服务器传过来的json数据之后,还要转换为Object
比如,服务器组装好的json数据:
{
id:’001′,
nodeMsg:’节点1′
}
这个是ajax成功之后的回调
function(xhr){
var o = eval(‘(‘ + xhr.responseText + ‘)’);
alert(o.id + ‘:’ + o.nodeMsg);
}
关于javascript树形控件大集合和js处理树形结构类数据的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。