来公司不长不短,快3个月了,用 devexpress权限树TreeView控制js静态选着,我做一个笔记,方便以后复习,最主要的是循环的一个逻辑。下面是js的代码,本人刚刚学习不久,查查帮助,弄了老半天。还是实现效果。
function onTreeView1NodeClick(s, e) {
//得到节点的名字
var name = e.node.name;
var node = e.node;
//选中全部
if (node != null) {
//判断节点父节点是否为空
var pnode = node.parent;
if (pnode === null) {
//if (name === "1-20") SetNodeValues(s,"1-20", 2, 7);
//节点的总数
var count = node.GetNodeCount();
for (var i = 0; i < count; i++) {
var eachnode = node.GetNode(i);
//循环选中子节点
eachnode.SetChecked(true);
if (node.GetChecked()) {
eachnode.SetChecked(true);
} else {
eachnode.SetChecked(false);
}
}
}
//子节点,选中父节点
else {
var count = pnode.GetNodeCount();
var boolx = true;
for (var i = 0; i < count; i++) {
var eachnode = pnode.GetNode(i);
if (s.GetNodeState(eachnode) === "Unchecked") {
boolx = false;
}
}
if (boolx === true) {
pnode.SetChecked(true);
//s.SetNodeState(pnode), "Checked");
}
else {
pnode.SetChecked(false);
//s.SetNodeState(pnode), "Unchecked");
}
}
}
}
此段为控制js的核心代码.
1 <dx:ASPxTreeView ID="ASPxTreeView1" runat="server" AllowCheckNodes="True" ClientInstanceName="TreeView1" 2 Height="100%" Width="100%"> 3 <ClientSideEvents CheckedChanged="onTreeView1NodeClick" /> 4 <Nodes> 5 <dx:TreeViewNode Name="0-9" Text="系统管理"> 6 7 </dx:TreeViewNode> 8 </Nodes> 9 <Nodes> 10 <dx:TreeViewNode Name="126-130" Text="缺陷申请"> 11 <Nodes> 12 <dx:TreeViewNode Name="126" Text="报废申请添加"> 13 </dx:TreeViewNode> 14 <dx:TreeViewNode Name="127" Text="报废申请删除"> 15 </dx:TreeViewNode> 16 <dx:TreeViewNode Name="128" Text="报废申请详细"> 17 </dx:TreeViewNode> 18 <dx:TreeViewNode Name="129" Text="报废审核"> 19 </dx:TreeViewNode> 20 </Nodes> 21 </dx:TreeViewNode> 22 </Nodes> 23 <Nodes> 24 <dx:TreeViewNode Name="131-135" Text="购置申请"> 25 <Nodes> 26 <dx:TreeViewNode Name="131" Text="报废申请添加"> 27 </dx:TreeViewNode> 28 <dx:TreeViewNode Name="132" Text="报废申请删除"> 29 </dx:TreeViewNode> 30 <dx:TreeViewNode Name="133" Text="报废申请详细"> 31 </dx:TreeViewNode> 32 <dx:TreeViewNode Name="134" Text="报废审核"> 33 </dx:TreeViewNode> 34 </Nodes> 35 </dx:TreeViewNode> 36 </Nodes> 37 </dx:ASPxTreeView>
页面树是静态的,觉得足够,用字段控制权限的显示和隐藏,在每个页面加载的时候做 字段的判断。需要写一个公共的类,和通用的权限方法。