来公司不长不短,快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>
页面树是静态的,觉得足够,用字段控制权限的显示和隐藏,在每个页面加载的时候做 字段的判断。需要写一个公共的类,和通用的权限方法。