用jquery-easyui中的combotree实现树形结构的选择
用jquery-easyui中的combotree实现树形结构的选择
需求:实现一个树形节点的选择,要求默认父节点都折叠,父节点前的checkbox不显示,子节点显示checkbox,且父节点不可选择。
1.前台先引入相应的js
<link href="../css/themes/icon.css" rel="stylesheet" />
<script src="../js/jquery-1.4.2.min.js" type="text/javascript"></script>
<link href="../css/themes/default/easyui.css" rel="stylesheet" />
<script src="../js/jquery.easyui.min.js" type="text/javascript"></script>
2.前台html只需要用到一个select控件
<select id="txtNewsTypes" multiple="true" style="width: 200px; height: 20px;"></select>
3.完成该需求的主要的js代码如下:
var newsTypeJson = <%=GetNewsType()%>;
$("#txtNewsTypes").combotree({
data:newsTypeJson,
cascadeCheck: $(this).is(':checked'),
setValue:1,
onCheck:function(node){
// 返回树对象
//var tree = $(this).tree;
// 选中的节点是否为叶子节点,如果不是叶子节点,清除选中$("#txtNewsTypes").combotree('clear');
//var isLeaf = tree('isLeaf', node.target);
//修改jquery-easyui产生的html样式的父节点的样式,移除tree-checkbox tree-checkbox0样式即可
var $titles=$(this).find("span.tree-hit");
$titles.each(function(index,value){
$(this).siblings().eq(1).removeClass("tree-checkbox tree-checkbox0"); })
},
onLoadSuccess:function(node,data){
//折叠节点
$("#txtNewsTypes").combotree("tree").tree("collapseAll");
} });
4.后台生成json数据的方法代码如下:
public string GetNewsType()
{ StringBuilder s = new StringBuilder(); List<NewsType> data = NewsTypeManager.GetAllNewsList(); List<NewsType> p_data = data.Where(d => d.FTypeId == ).ToList(); int i = , j = ;
s.Append("["); foreach (NewsType p_item in p_data)
{
if (j != )
s.Append(",");
j++;
s.Append("{");
s.Append("\"id\":\"" + p_item.TypeId + "\",");
//设置父节点默认不展开
//s.Append("\"state\":\"closed\",");
s.Append("\"text\":\"" + p_item.TypeName + "\"");
List<NewsType> c_data = data.Where(d => d.FTypeId == p_item.TypeId).ToList();
if (c_data != null && c_data.Count != )
{
s.Append(",");
s.Append("\"children\":");
s.Append("[");
for (i = ; i < c_data.Count; i++)
{
if (i != )
s.Append(",");
s.Append("{");
s.Append("\"id\":\"" + c_data[i].TypeId + "\",");
s.Append("\"text\":\"" + c_data[i].TypeName + "\"");
s.Append("}");
}
s.Append("]");
}
s.Append("}");
}
s.Append("]"); return s.ToString();
}
5.至此,该功能完成了,由于jquery-easyui没有提供方法来只隐藏父节点的checkbox,在不改变源代码的情况下,想了这个笨办法来修改样式达到实现需求的目的。
用jquery-easyui中的combotree实现树形结构的选择的更多相关文章
- Jquery EasyUI中treegrid
		
Jquery EasyUI中treegrid的中右键菜单和一般按钮同时绑定事件时的怪异事件 InChatter系统开源聊天模块前奏曲 最近在研究WCF,又因为工作中的项目需要,要为现有的系统增加一 ...
 - jquery easyUI中combobox的使用总结
		
jquery easyUI中combobox的使用总结 一.如何让jquery-easyui的combobox像select那样不可编辑?为combobox添加editable属性 设置为false ...
 - JQuery EasyUI中datagrid的使用
		
在学习过程中,可以参照JQuery EasyUI的官方网站学习.地址:http://www.jeasyui.com/demo/main/index.php 在学习JQuery EasyUI中的Data ...
 - 求助关于jquery easyUI中的treegrid组件,请各位帮忙给个思路,谢谢啦
		
现在项目中用到jquery easyUI中的treegrid组件,已经可以正常显示了.但是在保存的时候遇到问题,页面上参照官网的例子可以在页面更新,但是怎么获取编辑后的数据进而保存到数据库呢?
 - easyUI中treegrid组件构造树形表格(简单数据类型)+ssm后台
		
这几天做的项目要求用树形表格的形式展示一部分数据,于是就想到了使用easyUI的treegrid组件,但几经翻查各种资料,发现数据类型大多采取标准数据类型,即包含children元素的数据类型,小编查 ...
 - Jquery easyui中的有效性检查
		
使用过程中的一积累,备查. EasyUI 验证框使用方法: //*************************** missingMessage:未填写时显示的信息 validType:验证类型见 ...
 - Jquery EasyUI中treegrid的中右键菜单和一般按钮同时绑定事件时的怪异事件
		
做个项目使用jquery easyui来做前端,也许是对此不是很熟悉,总是发现一些不可理解的事件. 主要源代码如下: <script type="text/javascript&qu ...
 - 在jQuery EasyUI中实现对DataGrid进行编辑
		
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
 - jQuery EasyUI中DataGird动态生成列的方法
		
EasyUI中使用DataGird显示数据列表中,有时需要根据需要显示不同的列,例如,在权限管理中,不同的用户登录后只能查看自己权限范围内的列表字段,这就需要DataGird动态组合列,下面介绍Eas ...
 
随机推荐
- leetcode@ [329] Longest Increasing Path in a Matrix  (DFS + 记忆化搜索)
			
https://leetcode.com/problems/longest-increasing-path-in-a-matrix/ Given an integer matrix, find the ...
 - JM编解码264
			
看到有人说JM解码编码264 尝试了一下http://iphome.hhi.de/suehring/tml/download/win7下 vs2010 编译后,得到编码解码可执行文件ldecod.ex ...
 - Java注解处理器使用详解
			
在这篇文章中,我将阐述怎样写一个注解处理器(Annotation Processor).在这篇教程中,首先,我将向您解释什么是注解器,你可以利用这个强大的工具做什么以及不能做什么:然后,我将一步一步实 ...
 - Java文件分割
			
package FileDemo; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre ...
 - Oracle-Oracle10 数据空间建立,导入,导出--oracle10g 删除步骤
			
--以system/manager身份登录SQLPlus,并执行 ========================管理员登陆==================================== 登 ...
 - python 调用函数
			
Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: http://doc ...
 - Asp.Net底层解析
			
写的很好的一篇文章,但由于不能转载 所以把链接发在这里,以方便自己以后看 http://blog.csdn.net/mlcactus/article/details/8564347 http://ji ...
 - MFRCC522 SPI无法通讯【worldsing笔记】
			
用单片机于MRFC522与单片接时,加上485通讯后出现很诡异的像: 只要485芯片上有收到外部发送的信号时RC522就死掉,经过仿真卡在了SPI的收发部分(等待回复) u8 MFRC522Write ...
 - Oracle10g完全卸载正确步骤
			
Oracle卸载要求比较严格,不能简单的卸载就完事了:当然Oracle卸载也没有那么难,只是步骤比较多.Oracle10g还是Oracle11g卸载步骤都是一样的.下边详细介绍一下. 找到Oracle ...
 - C++学习笔记(十四):模板
			
模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性.模版可以分为两类,一个是函数模版,另外一个是类模版.Java中对应的技术称为泛型. 函数模板 ...