通过ajax 后台传递的 区域id 选中ztree的节点 并展开节点
代码如下:
< script type = "text/javascript" >
var flag = "<%=request.getParameter("
flag ")%>";
if (flag != "true") {
flag = false;
} else {
flag = true;
}
var reginTree = {
setting: {
view: {
fontCss: {
color: "#000"
}
},
check: {
enable: true,
chkboxType: {
"Y": "p",
"N": "p"
}, //加上ps 当点击父节点时子节点全部选中
children: "children"
},
data: {
key: {
checked: "checked"
},
simpleData: {
enable: true,
idKey: "id",
pIdKey: "pId",
rootPId: 0
}
}
},
//获取ztree对象
getZtreeObj: function(id) {
var zTree;
if ($.fn.zTree.getZTreeObj(id) != null && $.fn.zTree.getZTreeObj(id) != undefined) {
zTree = $.fn.zTree.getZTreeObj(id);
}
return zTree;
},
//初始化ztree
loadZtree: function(json, id, treeNode, callback) {
var setter = $.extend({}, reginTree.setting, json);
$.fn.zTree.init($('#' + id), setter, treeNode);
var zTree = reginTree.getZtreeObj(id);
if (callback) callback();
},
//加载ztree
loadArea: function(bal, regionIdList) {
var regionJson = {
"level": "2"
};
var treeNode = [];
_public_.getJson(regionJson, "frontServer?busiCode=02060203").done(function(data) {
if (data.returnCode == "Y") {
for (var i = 0; i < data.regionList.length; i++) {
var id = data.regionList[i].rid;
var pId = data.regionList[i].pid;
var name = data.regionList[i].regionName;
var json = {
"id": id,
"name": name,
"pId": pId
};
if (bal) {
if (reginTree.setbal(regionIdList, json.id)) {
json.checked = true;
}
}
treeNode.push(json);
}
console.dir(treeNode);
} else {
console.log("加载数据失败");
}
reginTree.loadZtree({
callback: {
onCheck: reginTree.zTreeOnCheck
}
}, 'tree', treeNode, function() {
var treeObj = reginTree.getZtreeObj('tree');
var nodes = treeObj.getCheckedNodes(true);
$.each(nodes, function(i, value) {
treeObj.expandNode(value, true, false, true);
});
});
});
$('#tree').css({
'width': '400px',
'height': '450px',
'overflow': 'auto'
});
$('#tree').parent().css({
'width': $('#tree').get(0).offsetWidth + 'px',
'height': $('#tree').get(0).offsetHeight + 'px'
});
},
//ztree节点选中 当选中节点时树形 结构展开
zTreeOnCheck: function(event, treeId, treeNode) {
var treeObj = reginTree.getZtreeObj('tree');
if (treeNode.checked == true) {
//单选控制
treeObj.checkAllNodes(false);
treeObj.checkNode(treeNode, true, true, false);
var oner = treeObj.getCheckedNodes(true);
treeObj.expandNode(treeNode, true, false, true);
}
/* var nodes = treeObj.getCheckedNodes(true);
console.dir(nodes); */
/* var treeObj = reginTree.getZtreeObj('tree'),
nodes = treeObj.getCheckedNodes(true),
v = "";
for (var i = 0; i < nodes.length; i++) {
v += nodes[i].name + ",";
alert(nodes[i].id + "," + v); //获取选中节点的值
} */
},
getCheckNode: function(id, bal, param) {
var zTree = reginTree.getZtreeObj(id);
var nodes = zTree.getCheckedNodes(bal);
var arr = [];
var i = 0;
var len = nodes.length;
console.dir(nodes);
for (i = 0; i < len; i++) {
arr.push(nodes[i][param]);
}
return arr.join();
},
setbal: function(regionIdList, id) {
var arr = regionIdList.split(',');
var i = 0;
var len = arr.length;
for (i = 0; i < len; i++) {
if (arr[i] == id) {
return true;
break;
}
}
}
};
$(function() {
$(".submit").on("click", function() {
var regionIds = reginTree.getCheckNode("tree", true, "id");
if (flag == true) {
var jsonr = {
"regionIds": regionIds
};
_public_.getJson(jsonr, "frontServer?busiCode=SYSRegionGetAllName").done(function(data) {
window.opener.setRegionIds(data.regionAllName, regionIds);
window.close();
});
} else {
window.opener.setRegionIds("", regionIds);
window.close();
}
});
});
var regionJson = {};
var regionIdList = window.opener.getRegionIds();
var bal = false;
if (regionIdList != null || regionIdList != "") {
/* regionJson = {"regionIdList":regionIdList}; */
bal = true;
}
//console.dir(regionJson);
reginTree.loadArea(bal, regionIdList); < /script>
通过ajax 后台传递的 区域id 选中ztree的节点 并展开节点的更多相关文章
- ajax向后台传递数组参数并将后台响应的数据赋值给一个变量供其它插件使用
1.在js中封装ajax向后台传递数组参数函数 //combogrid * * @Description 封装ajax向后台传递数组参数并将后台响应的数据赋值给一个变量方便其他插件使用该数据函数 * ...
- ajax获取后台传递的json数据
最近在使用JQuery的ajax方法时,需要返回的数据为json数据,在success返回中数据处理会根据返回方式不同会采用不同的方式来生成json数据.在$.ajax方法中应该是如何来处理的,简 ...
- ajax如何向后台传递数组,在后台该如何接收的问题(项目积累)
一.后台如何接收从前台接收的数组: 使用request.getParameterValues(String xxx); <input type="text" name=&qu ...
- 【转】jQuery.ajax向后台传递数组问题
$.ajax({ url: "/xxx", type: "GET", data: { "boxIds": boxIds, "box ...
- jQuery.ajax向后台传递数组问题
今天重温了一个问题,jQuery.ajax向后台传递一个数组,而在后台接收不到该值 前台js方法部分代码如下: //创建一个测试数组 var boxIds = new Array(); boxIds. ...
- Ajax向前后台传递json和转换
学生管理系统MVC模式设计心得: jquery .ajax提交data数据格式 jquery 的Ajax方法提交数据,但是是多个参数,具体data的格式如下: data提交的数据类型为:Object ...
- 基于layUI调用后台数据实现区域信息级联查询
基于layUI调用后台数据实现区域信息级联查询 1.基本思路 后台提供根据区域编码查询区域列表公共接口 页面初始化调用后台接口加载所有省份 点击省份将省份区域编码传入后台查询该省份下所有地市信息,以此 ...
- jquery 根据后台传递过来的三维数组动态生成三级菜单
根据后台传递过来的三维数组动态生成三级菜单 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- jquery ajax post 传递数组 ,多checkbox 取值
jquery ajax post 传递数组 ,多checkbox 取值 http://w8700569.iteye.com/blog/1954396 使用$.each(function(){});可以 ...
随机推荐
- Spring的注解
Action想使用serviceImpl时,都需要最原始的方法New一个接口,Service service = new serviceImpl();去实例化service了.都需要Action主动创 ...
- table清除样式大全
table{width:100%;text-align:center;border-collapse:collapse;border-spacing:1;border-spacing:0; }tabl ...
- Python压缩
ru=lambda x:x.decode('u8') rp=lambda x:x.replace('\\','/') gb=lambda x:x.decode('gbk') class ZIP: de ...
- JAVA 多线程随笔 (二) sleep, yield, join, wait 和notify
这里先说明一下锁对象,如果一个类比如Person里的方法都有synchronized来修饰,那么每一个方法的锁对象就是Person的一个实例person. 锁对象也可以针对某个特定的实例, 比如syn ...
- sass中中文注释报错
最近项目中用到了sass来编译css,但是scss代码中写了中文注释后编译报错, 经过查找文档和资料,终于找到了解决办法,即在scss文件顶部加上@charset "utf-8"; ...
- C# 自动生成代码API文档
暂时没学会正规的转载style临时记录一下 NET中的规范标准注释(一) -- XML注释标签讲解 http://www.cnblogs.com/mq0036/p/3544264.html NET中的 ...
- 前端神器Sublime Text3 常用插件&常用快捷键
Sublime Text3常用插件 使用Package Control组件安装 也可以安装package control组件,然后直接在线安装: 按Ctrl+`调出console(注:安装有QQ输入法 ...
- H5之contenteditable
场景: <div id='content' contenteditable='true' > hello </div> <button id='caret'>设置光 ...
- 【 2013 Multi-University Training Contest 7 】
HDU 4666 Hyperspace 曼哈顿距离:|x1-x2|+|y1-y2|. 最远曼哈顿距离,枚举x1与x2的关系以及y1与y2的关系,取最大值就是答案. #include<cstdio ...
- 一个简单的游戏开发框架(四.舞台Stage)
首先是StageManager类: class StageManager : public Singleton<StageManager> { friend class Singleton ...