zTree从数据库中动态加载树形菜单
作者:网络转载 发布时间:[ 2014/5/15 10:38:24 ] 推荐标签:数据库 开源框架 动态数据
checked节点
该树形是选中的节点,这个节点也很有用,比如加载一个商品它是属于哪些分类的,在加载树的过程中,要把默认选中的项目加载上来,这个你想怎么实现呢。
动态加载默认选中的节点,用了半天的时间才想出怎么弄,有时候并不是我们不会写代码而是没有思路,有时有思路但是行不通这时需要我们转换思考角度,在编程中也要注意从多角度思考,不要钻到一个点上去。
解决动态加载默认选中项我用的是传递参数,在一般的页面上面传递参数觉得很容易,我要用的这个页面是一个弹出页面,使用的是window.open属性,在弹出框上动态加载菜单并把选中的选中,ztree从官网上看API说是不能够传递参数,有一个otherparm属性可说是只接受静态参数,是一个一个的键值对,我在value处又加了一个js函数,通过这个函数调用父窗体上的一个变量的值,代码如下;
|
<SCRIPT type="text/javascript">
var setting = {
check: {
enable: true,
chkStyle: "checkbox",
chkboxType : { "Y" : "", "N" : "" }
},
//获取json数据
async : {
enable : true,
url : "http://127.0.0.1:8080/contact/resource.do?method=getzTreeNodes", // Ajax 获取数据的 URL 地址
autoParam : [ "id", "name" ], //ajax提交的时候,传的是id值
otherParam: ["contactid",function(){
return window.opener.document.getElementById("contactid").value;
}]
},
data:{ // 必须使用data
simpleData : {
enable : true,
idKey : "id", // id编号命名
pIdKey : "pId", // 父id编号命名
rootId : 0
}
},
// 回调函数
callback : {
onClick : function(event, treeId, treeNode, clickFlag) {
if(true) {
alert(" 节点id是:" + treeNode.id + ", 节点文本是:" + treeNode.name);
}
},
//捕获异步加载出现异常错误的事件回调函数 和 成功的回调函数
onAsyncSuccess : function(event, treeId, treeNode, msg){
// alert("调用成功!");
//var nodes=getCheckedNodes(true));
//alert(nodes);
},
beforeClick: beforeClick,
onCheck: onCheck
}
};
function beforeClick(treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
zTree.checkNode(treeNode, !treeNode.checked, null, true);
return false;
}
var code;
function showCode(str) {
if (!code) code = $("#code");
code.empty();
code.append("<li>"+str+"</li>");
}
$(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), setting);
//setCheck();
});
function onCheck(e,treeId,treeNode)
{
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
nodes = zTree.getCheckedNodes(true),
v = "";
var ids="";
for (var i=0, l=nodes.length; i<l; i++) {
v += nodes[i].name + ",";
ids+=nodes[i].id+",";
}
if (ids.length > 0 ) ids = ids.substring(0, ids.length-1);
alert(ids);
if (v.length > 0 ) v = v.substring(0, v.length-1);
cityObjIds=window.opener.document.getElementById("cateSelIds").value=ids;
cityObjName=window.opener.document.getElementById("cateSelName").value=v;
}
function getSelectedNodes()
{
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
nodes = zTree.getCheckedNodes(true),
v = "";
var ids="";
for (var i=0, l=nodes.length; i<l; i++) {
v += nodes[i].name + ",";
ids+=nodes[i].id+",";
}
if (ids.length > 0 ) ids = ids.substring(0, ids.length-1);
alert(ids);
if (v.length > 0 ) v = v.substring(0, v.length-1);
//var cityObj = $("#citySel");
//var cityObjIds = $("#citySelIds");
//给父窗体updateContact.jsp中所属分类赋值
window.opener.document.getElementById("cateSelIds").value=ids;
window.opener.document.getElementById("cateSelName").value=v;
}
function winClose()
{
window.close();
}
lt;/SCRIPT>
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
在测试数据库性能时,需要注意哪些方面的内容?测试管理工具TC数据库报错的原因有哪些?怎么解决?数据库的三大范式以及五大约束编程常用的几种时间戳转换(java .net 数据库)优化mysql数据库的几个步骤数据库并行读取和写入之Python实现深入理解数据库(DB2)缓冲池(BufferPool)国内三大云数据库测试对比预警即预防:6大常见数据库安全漏洞数据库规划、设计与管理数据库-事务的概念SQL Server修改数据库物理文件存在位置使用PHP与SQL搭建可搜索的加密数据库用Python写一个NoSQL数据库详述 SQL 中的数据库操作详述 SQL 中的数据库操作Java面试准备:数据库MySQL性能优化

sales@spasvo.com