用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 ...
随机推荐
- HW6.23
public class Solution { public static void main(String[] args) { boolean[] box = new boolean[101]; f ...
- leetcode@ [322] Coin Change (Dynamic Programming)
https://leetcode.com/problems/coin-change/ You are given coins of different denominations and a tota ...
- Bzoj-2190 仪仗队 欧拉函数
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2190 简单的欧拉函数题,实际上就是求gcd(x,y)=1, 0<=x,y<=n ...
- FFmpeg YUV视频序列编码为视频
上一篇已经写了如何配置好开发环境,这次就先小试牛刀,来个视频的编码.搞视频处理的朋友肯定比较熟悉YUV视频序列,很多测试库提供的视频数据都是YUV视频序列,我们这里就用用YUV视频序列来做视频.关于Y ...
- SQL2008-截取字段函数
ltrim() int转字符 Left('ABC',2)='AB' right('ABC',2)='BC' SUBSTRING('ABC',1,2)='AB' 和DELPHI中的COPY一样Sub ...
- light oj 1078 - Integer Divisibility
1078 - Integer Divisibility PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 3 ...
- Windbg分析DMP文件
1.提取Dump格式文件 有两种方式: 第一种,程序崩溃时,启动任务管理器,选择崩溃的*.exe进程,右键选择创建转储文件,通过 开始—运行—输入 %temp% --确定--在打开Temp窗口中即可找 ...
- cocos2d-x ScrollView、TableView
转自:http://codingnow.cn/cocos2d-x/1024.html 在游戏和应用中经常要实现左右滑动展示游戏帮助.以列表显示内容的UI效果,就像android中的Gallery和Li ...
- 检查class排座位
在写这篇文章之前,xxx已经写过了几篇关于改检查class主题的文章,想要了解的朋友可以去翻一下之前的文章 每日一道理 灯,带有一种明亮的光,每当深夜来临,是它陪伴着你,如此默默无闻.它是平凡 ...
- Win8 安装Oracle 10g 提示“程序异常终止”的解决方案
这段时间在做DRP,需要安装Oracle 10g的数据库,我的系统是win8企业版,安装Oracle 10g的时候,选择“高级安装”,提示“程序异常终止”,下面是几个解决方案,跟大家分享一下. 错误提 ...