bootstrap的treeview checked属性 ----解决方案

今天在开发过程中遇到了两个小问题,因为在做树形结构展示,用的是bootstrap的treeview,在获取json data的时候有几点需要注意

1)"pid":5,"id":4,"text":"xx"  这三个属性是必须要获取到的,其中pid为父节点id,id为该条数据的id,text为你要显示的文本

2)"state":{"checked":true}  state属性 其中checked为true  意思是说该条被选中,如果为false则未被选中,我在试验"checked":true 没有state属性的时候发现也是好用的,如果这样的话在开发过程中可以根据程序选择用checked:true的形式还是state:{checked:true}

我在开发的时候用的是state属性,由于用了该属性同时发现了一些问题,由于在数据库中没有进行该字段,所以在实现类执行sql的时候用到了case when then else end的判断

代码如下:

sql =" (CASE WHEN (SELECT COUNT(*) FROM T_SM_ROLE_FUNS T2 WHERE T2.FUN_ID=T1.FUN_ID AND T2.ROLE_ID=‘2‘)>=1"
    +" THEN ‘{checked:true}‘ ELSE ‘{checked:false}‘ END ) AS \"state\"

该判断的意思是,如果有值则checked:true 否则 checked:false

在得到json的过程中得到的形式如下:"state":"{checked:fase}" 但是我想要的json格式是"state":{checked:true} 所以我需要把双引号去掉,只能在前端进行去除,方式是用replace的方式

代码如下:

json数据如下:

var treeData2 = [{"id":"3", "pid" : "", "text":"主页","FUN_ID":"3",
                  "FUN_CD":"5","FUN_NM":"主页", "state": "{ checked: true}"}];

做替换,代码如下:

treeData = JSON.stringify(json);
var re = /\:"{checked:/g
var lf = /}\"/g
var jsonD = treeData.replace(re,‘:{"checked":‘);
var jsonN = jsonD.replace(lf,"}");

得到的json数据如下:

var treeData2 = [{"id":"3", "pid" : "", "text":"主页","FUN_ID":"3",
                  "FUN_CD":"5","FUN_NM":"主页", "state": { "checked": true}}];

在这里需要注意的是如果是jsp页面直接执行json串调用treeview的checked对不带双引号的"" ,checked属性是没有要求的,不会报错

但是在讲jsonN传到treeview的时候就出现了错误,要求一定要把双引号加上才可以,错误如下

Unexpected token c in JSON at position 54

所以将双引号加上 ,错误解决

时间: 2024-11-19 23:20:41

bootstrap的treeview checked属性 ----解决方案的相关文章

jquery中input复选框的checked属性

在今日的多选,反选,全选试验中,关于通过jQuery方法来实现复选框的选中与否问题,我有了以下发现: 1.不能通过.css('checked','checked')方法来设置或者获取复选框的checked属性,在控制台打印输出.css('checked'),结果为undefined, 不管在HTML中是否设置了checked='checked'; 2.通过attr添加属性即.attr('checked','abc'),会给HTML中input所在处添加checked='checked'这样的代码

TreeView.ImageSet 属性

TreeView.ImageSet 属性 .NET Framework 2.0 注意:此属性在 .NET Framework 2.0 版中是新增的. 获取或设置用于 TreeView 控件的图像组. 命名空间:System.Web.UI.WebControls程序集:System.Web(在 system.web.dll 中) 语法 C# C++ VB public TreeViewImageSet ImageSet { get; set; } J# /** @property */ publi

点击tr实现选择checkbox功能,点击checkobx的时候阻止冒泡事件, jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态

给tr添加点击事件,使用find方法查找tr下的所有层级的元素,children只查找下一层级的元素,所以使用find.find的返回值为jquery对象,在这个项目中不知道为什么使用jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态,所以我就把jquery对象转换为DOM对象,怎么转呢?jquery对象[0]或者get(0)就转换成DOM对象,然后直接.checked返回true或false就可以判断checkbox是否选中了.然后判断状

checkbox的checked属性问题

在设置checked时,如 $("#checkbox").attr("checked",true); 页面显示checked属性已添加,但是未被选中(没打勾), 在如下代码中没有问题: function tree_item_checked(cl,type){     if($("#item_"+cl).is(":checked")) {         $("input[key='tree_item_checkbox

HTML input标签的checked属性与Razor解析

在HTML中,input标签可以通过type属性设置为checkbox.同时,也就包含了一个checked属性.对于这个checked属性,有一个特别的地方就是,它可以不需要属性值就可以表示是否选择了.这背后的原因是源自于早期的HTML,checked是一个独立的boolean属性. 所以给1)checked赋值true <input type="checkbox" checked="true" /> 和2)直接写checked <input ty

jQuery实现复选框的全选、反选、并且根据复选框的&lt;checked属性&gt;控制多个对应div的显示/隐藏

<!doctype html><html> <head> <meta charset="utf-8"> <title>jQuery实现复选框的全选.反选.并且根据复选框的(checked属性)控制多个对应div的显示/隐藏</title> <script type="text/javascript" src="jquery-1.11.3.min.js"></

Input类型是checkbox时checked属性获取

记录一下checkbox 的 checked 属性的获取办法,以备忘记: 假如你的一个HTML页中有这么一段代码: <input name="chbRem" id="chbRem" type="checkbox" checked="checked"> 那么如何通过JQuery获得chbRem的checked状态呢: 错误的写法如下: alert(  $("#chbRem").attr("

jquery与checkbox的checked属性的问题

1.页面加载成功后,点击选中或取消选中该checkbox,checkbox属性里的checked属性不会根据该checkbox是否选中而变化 2.checkbox里的onchange或onclick方法里用jquery的attr方法获取checked是看得到的checked属性的值与它是否给钩上没有关系 3.使用document.getElementById("checkbox_id").checked获取的值与是否钩上一至,即与所见即所得 4.使用$("#checkbox_

jquery1.6+ 获取checkbox的checked属性总是undefined

项目中用的jquery1.10 今天需要检测一个checkbox的选中状态,想当然的用 .attr("checked") ,结果发现,无论是否选中,这个值都是 undefined 未定义. 原因:在jquery1.6版本便对此做出了修改: [checked属性在页面初始化的时候已经初始化好了,不会随着状态的改变而改变. 也就是说如果checkbox在页面加载完毕是选中的,那么返回的永远都是checked(我的一开始就是没选中) 如果一开始没被选中,则返回的永远是undefined !]