【笔记】ztree的使用
引用的js和css:
<!-- zTreeJS -->
<script type="text/javascript" src="jquery/jquery-1.7.min.js"></script>
<script type="text/javascript" src="zTree/js/jquery.ztree.core-3.2.js"></script>
<script type="text/javascript" src="zTree/js/jquery.ztree.excheck-3.2.js"></script>
<script type="text/javascript" src="zTree/js/jquery.ztree.exedit-3.2.js"></script>
//异步加载节点
var setting = {
data: {
key : {
name : "name"
},
simpleData: {
enable: true,
idKey: "id",
pIdKey: "pId",
rootPId: 0
}
},
async: {
//异步加载
enable: true,
url: "${ctx}/admin/learn/course!publicCourseTree.do",
autoParam : [ "id" ],
dataType : "json",
type : "post"
},
check : {
enable : false,
chkStyle : "radio",
radioType : "level"
},
callback: {
beforeExpand: beforeExpand,
onAsyncSuccess: onAsyncSuccess,
onAsyncError: onAsyncError,
onClick : function(event, treeId, treeNode) {
var courseID = treeNode.id;
$("#courseID").val(courseID);
$.post("${ctx}/admin/learn/course!getCourseTreeInfo.do?id="+courseID,
{"parm":""},
function(data) {
$.each(data, function(i,item) {
$("#codeSM").html(item.id);
$("#name").html(item.name);
$("#flag").val(item.status);
$("#description").html(item.description);
$("#createtime").html(item.createtime);
if(item.status=="1"){
$("#updateflag").val("取消发布");
$("#status").html("已发布");
}else{
$("#updateflag").val("发布");
$("#status").html("未发布");
}
if(item.imgurl!=null){
$("#img").attr("src","${ctx}/uploads/"+item.imgurl);
}else{
$("#img").attr("src","");
}
});
}, "json");
}
}
};
function beforeExpand(treeId, treeNode) {
if (!treeNode.isAjaxing) {
return true;
} else {
alert("zTree 正在下载数据中,请稍后展开节点。。。");
return false;
}
}
function onAsyncSuccess(event, treeId, treeNode, msg) {
}
function onAsyncError() {
alert(" 数据加载失败");
}
function createTree() {
$.ajax({
url: "${ctx}/admin/learn/course!publicCourseTree.do", //url action是方法的名称
data: { id: -1 },
type: 'Get',
dataType: "json", //可以是text,如果用text,返回的结果为字符串;如果需要json格式的,可是设置为json
success: function (data) {
$.fn.zTree.init($("#_courseTreeSM"), setting, eval(data));
},
error: function (msg) {
alert(" 数据加载失败!" + msg);
}
});
}
$(document).ready(function () {
createTree();
});
//删除
var tree = $.fn.zTree.getZTreeObj("_stationTreeSM");
var node = tree.getNodeByParam("ID", response.id, null);
tree.removeNode(node);
var node = treeObj.getNodeByParam("ID", response.parentid, null);
//添加
treeObj.addNodes(node, {ID : response.newStationID, NAME : $("#nameAS").val()});
//修改
node.NAME = $('#nameAS').val();
treeObj.updateNode(node);
public List<Map<String, Object>> getPublicCourseTree(String id, Integer orgID)
{
List<Map<String, Object>> list1 = new ArrayList<Map<String, Object>>();
List<Map<String, Object>> list2 = new ArrayList<Map<String, Object>>();
if (null == id && !"".equals(id)){
String hql="SELECT t.id, t.name, t.parentid as pid,t.description,DATE_FORMAT(t.createtime, '%Y-%m-%d') createtime,t.status,t.imgurl,(SELECT COUNT(t2.id) FROM c_publiccourse_tab t2 WHERE t2.parentid = t.id) coun FROM c_publiccourse_tab t WHERE t.PARENTID = -1 and t.orgid='"+orgID+"'";
Query query = super.createSQLQuery(hql).addScalar( "id" , Hibernate.STRING).addScalar( "name" , Hibernate.STRING).addScalar( "pid" , Hibernate.STRING)
.addScalar( "description" , Hibernate.STRING).addScalar( "createtime" , Hibernate.STRING).addScalar( "status" , Hibernate.STRING).addScalar( "imgurl" , Hibernate.STRING).addScalar( "coun" , Hibernate.STRING).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
list1=query.list();
}else{
String hql = "SELECT t.id, t.name , t.parentid as pid,t.description,DATE_FORMAT(t.createtime, '%Y-%m-%d') createtime,t.status,t.imgurl,(SELECT COUNT(t2.id) FROM c_publiccourse_tab t2 WHERE t2.parentid = t.id) coun FROM c_publiccourse_tab t WHERE t.PARENTID ='" + id +"' and t.orgid='"+orgID+"' order by t.id asc";
Query query = super.createSQLQuery(hql).addScalar( "id" , Hibernate.STRING).addScalar( "name" , Hibernate.STRING).addScalar( "pid" , Hibernate.STRING)
.addScalar( "description" , Hibernate.STRING).addScalar( "createtime" , Hibernate.STRING).addScalar( "status" , Hibernate.STRING).addScalar( "imgurl" , Hibernate.STRING).addScalar( "coun" , Hibernate.STRING).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
list1=query.list();
}
for (Map<String, Object> map : list1){
map.put("open", true);
String parentid = map.get("pid").toString();
if (parentid.equals("-1")){
map.put("open", true);
int count = Integer.parseInt(map.get("coun").toString());
if (count > 0){
map.put("isParent", true);
}else{
map.put("isParent", false);
}
}else{
int count = Integer.parseInt(map.get("coun").toString());
if (count > 0){
map.put("isParent", true);
}
}
list2.add(map);
}
return list2;
} List<Map<String, Object>> data=publicCourseManager.getPublicCourseTree2(id,orgID);
try
{
response.getWriter().write(JSONArray.fromObject(data).toString());
} catch (IOException e)
{
e.printStackTrace();
}
【笔记】ztree的使用的更多相关文章
- zTree 学习笔记之(一)
zTree 学习笔记之(一) 简介 zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. 到底有哪些具体的优点,可以参见官网 ...
- [译]聊聊C#中的泛型的使用(新手勿入) Seaching TreeVIew WPF 可编辑树Ztree的使用(包括对后台数据库的增删改查) 字段和属性的区别 C# 遍历Dictionary并修改其中的Value 学习笔记——异步 程序员常说的「哈希表」是个什么鬼?
[译]聊聊C#中的泛型的使用(新手勿入) 写在前面 今天忙里偷闲在浏览外文的时候看到一篇讲C#中泛型的使用的文章,因此加上本人的理解以及四级没过的英语水平斗胆给大伙进行了翻译,当然在翻译的过程中发 ...
- Ztree 随笔记
Ztree方法是一个单体对象方法,假如一个页面有多个的话,每申明一个新对象前面的Ztree对象就要被覆盖. 解决:在生成tree控件的时候就要设置其控件ID,然后通过$.fn.zTree.getZTr ...
- Ztree使用笔记
在项目中需要用到树,使用了Ztree.(官网地址:http://www.treejs.cn/v3/main.php#_zTreeInfo,介绍很详细,有API,有demo) 1.初始化树: $.f ...
- web前端开发控件学习笔记之jqgrid+ztree+echarts
版权声明:本文为博主原创文章,转载请注明出处. 作为web前端初学者,今天要记录的是三个控件的使用心得,分别是表格控件jqgrid,树形控件ztree,图表控件echarts.下边分别进行描述. ...
- ztree学习笔记(一)
在项目当中,经常会用到ztree树形插件,之前做的几个项目当中都用到了这个插件,感觉功能还是很强大的,而且在网上还找到了中文的API,因为项目中的树形结构不是自己做的,所以现在从头学习一下,并且记录一 ...
- zTree 3-- jQuery 树插件笔记
地址:http://www.treejs.cn/v3/demo.php#_507 数据结构json,里可以自定义属性. var zNodes =[ { name:"父节点1 - 展开&quo ...
- z-tree学习笔记
做项目时,需要用到带复选框的tree.经比较后优选了ztree,功能强大,文档清晰. http://www.treejs.cn/v3/api.php 直接上代码吧. 1.下载ztree后.将里面需要用 ...
- JQ树插件 — zTree笔记
1.zTree作者很贴心的为使用者将不同功能的代码封装成不同的文件,方便大家尽量减少加载的代码量,如果基本全用到,则不必一个个引用,有一个文件“jquery.ztree.all.js”,包含了所有.如 ...
随机推荐
- bzoj1415[NOI2005]聪聪和可可
之前做的一些图上的期望步数的题大多用到高斯消元来求解(HNOI游走,SDOI走迷宫,etc),因此我一开始做这道题的时候想偏了- 这道题的性质:聪聪和可可之间的最短路长度严格递减.因为聪聪总可以多走一 ...
- json数组去重
//名字去重 Map<String,Integer> map=new HashMap<String,Integer>(); for(int i=0;i<jows.size ...
- CTP程序化系统开发(C++ && PHP)
2016-12-13 11:03:52 借助CTP的DEMO(上海期货交易公司提供的), 需要自己在 http://www.simnow.com.cn 上注册账号, 再者,需要下载[博易大师]软件, ...
- 【总结】使用WebBrowser遇到的陷阱
一.前言 一直想用WebBrowser做一些好玩的东西,比如抓取分析感兴趣的网站页面.自动点击提交页面等,所以最近在研究WebBrowser.WebBrowser的功能十分强大,就是一个微型的Brow ...
- iconfont使用,亲测
iconfont对于前端应用来说有很多便捷: 1.自由变化大小 2.自由修改颜色 3.可以添加一些视觉效果如:阴影.旋转.透明度. 4.兼容IE6 在线引用和下载到本地两种方法 一.在线引用 图标的制 ...
- TTTAttributedLabel xib sb lineSpacing not working
https://github.com/TTTAttributedLabel/TTTAttributedLabel/issues/733 set the same text in storyboard ...
- MyBatis源码分析(5)——内置DataSource实现
@(MyBatis)[DataSource] MyBatis源码分析(5)--内置DataSource实现 MyBatis内置了两个DataSource的实现:UnpooledDataSource,该 ...
- Solr学习总结(八)IK 中文分词的配置和使用
最近,很多朋友问我solr 中文分词配置的问题,都不知道怎么配置,怎么使用,原以为很简单,没想到这么多朋友都有问题,所以今天就总结总结中文分词的配置吧. 有的时候,用户搜索的关键字,可能是一句话,不是 ...
- thinkphp如何一次性的上传多个文件,在文件域中可以多选?
可以做到类似于某度网盘的样式吗? 文件夹的命名, 可以用单数, 也可以用复数, 在同一个项目中, 只要统一就好了. 毕竟项目开发不同于英语写作. 建议使用缩写, 不管是不是缩写都用单数, 这样简洁,容 ...
- Android中Context的理解及使用(一)——Context的作用
Context的作用:用来访问全局信息的接口,通过Context进行资源的访问. 1.Context获取字符串资源: public class MainActivity extends AppComp ...