dojo tree edit的使用[前端]
var store = new mydata.JsonRestStore({ target: "<%=ResolveUrl("~/uieditserver.ashx")%>" });
typestore = new mydata.JsonRestStore({
target: "<%=ResolveUrl("~/uieditserver.ashx") %>",
labelAttribute: "pagename"
});
treeModel = new dijit.tree.ForestStoreModel({
store: typestore,
deferItemLoadingUntilExpand: true,
rootLabel: "系统功能树",
query: { operation: 'pageList.FindTree' },
childrenAttrs: ["Details"]
});
var treeControl = new dijit.Tree({
id: "atreepowers",
model: treeModel,
autoExpand: true,
showRoot: true,
_createTreeNode: function (args) {
var tnode = new dijit.Tree._TreeNode(args);
tnode.labelNode.innerHTML = args.label;
if (args.item.root) {//如果是根
return tnode;
}
var cb = new dijit.form.CheckBox();
cb.placeAt(tnode.labelNode, "first");
dojo.connect(cb, "onChange", function () {
var treeNode = dijit.getEnclosingWidget(this.domNode.parentNode);
dojo.publish("/checkbox/clicked", [{
"checkbox": this,
"item": treeNode.item
}]);
});
return tnode;
}
});
dojo.subscribe("/checkbox/clicked", function (message) {
message.item.ischecked = message.checkbox.checked;
setpersiblings(message.checkbox.getParent());
});
function setpersiblings(selectNode) {
if (!selectNode) return;
//先子级,孙级
var checked = selectNode.item.ischecked;
var childrens = selectNode.getChildren();
for (var i = 0; i < childrens.length; i++) {
childrens[i].item.ischecked = checked;
dijit.getEnclosingWidget(childrens[i].labelNode.firstElementChild)
.set('checked', checked);
}
var iparentknow = 0;
//位置,往前获取数据,往后获取数据,同级
var getparentchildrens = selectNode.getParent();//.getChildren();
while (getparentchildrens && getparentchildrens.isTreeNode && !getparentchildrens.item.root) {
var getchildrens = getparentchildrens.getChildren();
for (var i = 0; i < getchildrens.length; i++) {
if (getchildrens[i].item.ischecked) {
iparentknow += 1;
}
}
if (iparentknow === getchildrens.length) {
getparentchildrens.item.ischecked = true;
dijit.getEnclosingWidget(getparentchildrens.labelNode.firstElementChild)
.set('checked', true);
}
else {
getparentchildrens.item.ischecked = false;
dijit.getEnclosingWidget(getparentchildrens.labelNode.firstElementChild)
.set('checked', false);
}
getparentchildrens = getparentchildrens.getParent();//.getChildren();
}
}
dojo tree edit的使用[前端]的更多相关文章
- Dojo Tree设置默认选中项并且获得它
先上用来生成Tree的JSON数据 [ { "id": "Root", "name": "资源目录" }, ...
- dojo Tree 添加、删除节点
var tree=this.tree; var store=tree.model.store; if(this.node){ console.log(this.node) var children=t ...
- Web前端工程师成长之路——知识汇总
一.何为Web前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript ...
- 前端自动化测试工具doh学习总结(二)
一.robot简介 robot是dojo框架中用来进行前端自动化测试的工具,doh主要目的在于单元测试,而robot可以用来模仿用户操作来测试UI.总所周知,Selenium也是一款比较流行的前端自动 ...
- Web前端工程师成长之路
一.何为Web前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/D ...
- 如何成为一名优秀的前端工程师 (share)
发现一篇不错的博文,和大家分享一下,为有志成为一名优秀前端工程师的童鞋们提供一个参考. :)~ 本文来源:http://www.biaodianfu.com/what-makes-a-good-fro ...
- 深入了解 Dojo 的服务器推送技术
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- 利用fis3构建前端项目工程
FIS3是国内百度公司产出的一款前端工程构建工具,FIS3可以解决前端工程中性能优化.资源加载(异步.同步.按需.预加载.依赖管理.合并.内嵌).模块化开发.自动化工具.开发规范.代码部署等问题,首先 ...
- web前端project师知识汇总
分类: Web开发应用 一.何为Web前端project师? 前端project师,也叫Web前端开发project师.他是随着web发展.细分出来的行业.Web前端开发proj ...
随机推荐
- C++项目中的extern "C" {}
from:http://www.cnblogs.com/skynet/archive/2010/07/10/1774964.html C++项目中的extern "C" {} 20 ...
- 在ie浏览器,360浏览器下,margin:0 auto;不居中的原因
转自 http://blog.sina.com.cn/s/blog_6eef6bf60100nn4m.html margin:0 auto:不居中可能有以下两个的原因 没有设置宽度 看看上面的代码,根 ...
- 在Activity之间传递参数(三)——serializable和parcelable的区别
传递值对象: 一.serializable实现:简单易用 serializable的迷人之处在于你只需要对某个类以及它的属性实现Serializable 接口即可.Serializable 接口是一种 ...
- jaxb
一.简介 JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实 ...
- 转 C# 只允许运行一个实例
来源:http://blog.csdn.net/jin20000/article/details/3136791 互斥进程(程序), 简单点说,就是在系统中只能有该程序的一个实例运行. 现在很多软件都 ...
- DataTable数据检索的性能分析(转寒江独钓)
我们知道在.NET平台上有很多种数据存储,检索解决方案-ADO.NET Entity Framework,ASP.NET Dynamic Data,XML, NHibernate,LINQ to SQ ...
- 《征服 C 指针》摘录6:解读 C 的声明
一.混乱的声明——如何自然地理解 C 的声明? 通常,C 的声明 int hoge; 这样,使用“类型 变量名;”的形式进行书写. 可是,像“指向 int 的指针”类型的变量,却要像下面这样进行声明: ...
- ODBC API简介
1. 数据类型: 通过SQLGetTypeInfo函数来获取ODBC 3.0支持的数据类型信息.由SQLGetTypeInfo返回的数据类型是数据源所支持的数据类型. SQLRETURN S ...
- WEB API异常处理
当一个web api抛出一个异常后 此异常会被转化成一个HTTP响应 错误代码为500的服务错误 但是如果你不想让客户端看到500的错误码 你也可以自定义错误码 如下代码当用户输入的ID没有与之相关的 ...
- Path之Data属性语法A命令
<Path Width="300" Height="300" Fill="Red" Data="M 100,100 L 10 ...