社区
JavaScript
帖子详情
请问如何让XTREE支持CHECKBOX
icebluenet
2005-09-19 11:07:03
请问如何让XTREE支持CHECKBOX,同时能选中上层目录时候下层节点的checkbox默认选中。
...全文
288
6
打赏
收藏
请问如何让XTREE支持CHECKBOX
请问如何让XTREE支持CHECKBOX,同时能选中上层目录时候下层节点的checkbox默认选中。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
icebluenet
2005-09-24
打赏
举报
回复
谢谢。
nonegigi
2005-09-22
打赏
举报
回复
并且在tree.js调用时把WebFXTreeItem 改成 WebFXCheckBoxTreeItem 其他的具体的你可以看下注视
xtree的作者 非常仔细地注释
nonegigi
2005-09-22
打赏
举报
回复
在xtree.js的最后添加
function WebFXCheckBoxTreeItem(sText, sAction, bChecked, eParent, sIcon, sOpenIcon) {
this.base = WebFXTreeItem;
this.base(sText, sAction, eParent, sIcon, sOpenIcon);
this._checked = bChecked;
}
WebFXCheckBoxTreeItem.prototype = new WebFXTreeItem;
WebFXCheckBoxTreeItem.prototype.toString = function (nItem, nItemCount) {
var foo = this.parentNode;
var indent = '';
if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
var i = 0;
while (foo.parentNode) {
foo = foo.parentNode;
indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
i++;
}
this._level = i;
if (this.childNodes.length) { this.folder = 1; }
else { this.open = false; }
if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
}
else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
var label = this.text.replace(/</g, '<').replace(/>/g, '>');
var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this, event)\">";
str += indent;
str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
// insert check box
str += "<input type=\"checkbox\"" +
" class=\"tree-check-box\"" +
(this._checked ? " checked=\"checked\"" : "") +
" onclick=\"webFXTreeHandler.all[this.parentNode.id].setChecked(this.checked)\"" +
" />";
// end insert checkbox
str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
for (var i = 0; i < this.childNodes.length; i++) {
str += this.childNodes[i].toString(i,this.childNodes.length);
}
str += "</div>";
this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
return str;
}
WebFXCheckBoxTreeItem.prototype.getChecked = function () {
var divEl = document.getElementById(this.id);
var inputEl = divEl.getElementsByTagName("INPUT")[0];
return this._checked = inputEl.checked;
};
WebFXCheckBoxTreeItem.prototype.setChecked = function (bChecked) {
if (bChecked != this.getChecked()) {
var divEl = document.getElementById(this.id);
var inputEl = divEl.getElementsByTagName("INPUT")[0];
this._checked = inputEl.checked = bChecked;
if (typeof this.onchange == "function")
this.onchange();
}
};
icebluenet
2005-09-19
打赏
举报
回复
给个思路也行,能不能不去修改他的源代码。
LCKKING
2005-09-19
打赏
举报
回复
帮你顶下吧,这个问题不是2句话就能说清楚的
icebluenet
2005-09-19
打赏
举报
回复
有没有人能给我发一份阿赖的树型控件
icebluenet@eyou.com
xtree
+
checkbox
+radio,xloadtree+
checkbox
+radio
xloadtree,
xtree
, ajax动态加载,
xtree
+
checkbox
+radio,xloadtree+
checkbox
+radio.rar
xloadtree
此压缩包内包含树菜单的所有功能,静态加载,ajax动态加载,
xtree
+
checkbox
+radio,xloadtree+
checkbox
+radio
并且都包含多选框和单选框
vue自定义无限级权限树组件.zip
1. 通过递归,组件套组件,无限套娃实现无限层级 2. 各节点增加input type=‘
checkbox
’,实现打勾 3. 每次点击子节点通过最上层父组件更新数据,因为涉及到循环嵌套,不能只调用本组件的父组件操作,每个组件通过属性记录最上层父组件,这样不管哪级组件都可以调用最上层父组件的方法 4. 组件要做成2个,一个树视图
XTree
View,一个t树项目
Xtree
,具体引用的是树视图,树视图循环嵌套
XTree
5. 勾选节点时,同步更新该节点的所有子节点,因此更新也涉及到了递归
js效果页面实例及说明文档包html版
绝对的经典javascript收藏 包含了各个种类的js校验实例
web开发绝妙帮手
javascript收藏
1.页面校验
1.文本框约束输入
2.表单校验工具库
3.文本框部分内容不让改变
2.下拉框类
1.列表框移动转移
2.select内容过滤
3.下拉框关联
3.导航类
1.TabPage
2.TabPageSimple版
3.coolJs菜单
4.tigra菜单demo1
5.tigra菜单demo2
4.表格类
1.变色表格
2.设置奇偶颜色
3.拖拽交换单元格内容
4.拖拽改变单元格大小
5.可多选表格
6.可编辑表格
5.选择控件类
1.颜色面板
2.计算器
3.日历控件
6.树
1.普通
xTree
2.带
checkbox
的
xTree
3.普通的loadtree
4.带
checkbox
的loadtree
7.进度条
1.进度条(后台采用flush)
8.模拟类
1.模拟页面级内容搜索
2.模拟可以拖拽的小窗口
3.模拟tooltip效果
4.模拟三态
checkbox
5.模拟提示hint
9.其它类
1.局部刷新
2.javascript模拟HashMap类
Web测试过程中前台通用问题
说明文档下载
layui 数菜单插件
功能说明:(详细使用方式在下面的文档中) 1、常规tree,无层级限制; 2、增加
checkbox
复选框; 3、两种数据绑定方式,json数组/异步数据接口,优化了数据格式; 4、节点默认选中状态; 5、节点是否可用; 6、父级节点拥有其子级节点全选功能; 7、父级节点监听子级节点选中状态,并更改自身状态; 8、加载等待提示; 9、加载完毕后的初始展开状态; 10、三种节点图标样式自定义设置,取自layui图标; 11、三种节点图标颜色自定义配色; 12、全选框; 13、全选框状态更改触发的监听事件自定义; 14、节点状态更改的监听事件自定义(节点点击事件,不包含全选框); 15、可自动撑起容器高度,容器最小高度100px; 16、解决单页面多个
xtree
冲突的问题; 17、如layui一样简单的使用方式; 提供四种方法: 1、获取全部[选中的][末级节点]原
checkbox
DOM对象,返回Array 2、获取全部原
checkbox
DOM对象,返回Array 3、通过value值找父级DOM对象,顶级节点与错误值均返回null 4、更新数据,重新渲染,无返回值
JavaScript
87,924
社区成员
224,616
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章