关于treeview控件中checkboxes属性

Samoul_iixx 2012-08-10 08:42:21
我想实现控件加载的时候 treeview 的所有 checkboxex为选中状态

然后根据权限,判断某些子节点为false,

球代码
...全文
244 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengluxiao 2012-08-10
  • 打赏
  • 举报
回复
一楼说的对着呢啊,你可以试试
高彬 2012-08-10
  • 打赏
  • 举报
回复

#region 读取权限数据,设置已选取节点的CheckBox为True
public static void SelCheckNodes(TreeView tree, string[] jsqx)
{
//SetNodesChkFalse(tree);
foreach (TreeNode tn in tree.Nodes)
{
foreach (string nodevalue in jsqx)
{
if (nodevalue == tn.Value) { tn.Checked = true; }
}
SelCheckChildNodes(tn, jsqx);
}
}
private static void SelCheckChildNodes(TreeNode node, string[] jsqx)
{
if (node.ChildNodes.Count > 0)
{
foreach (TreeNode tn in node.ChildNodes)
{
foreach (string nodevalue in jsqx)
{
if (nodevalue == tn.Value) { tn.Checked = true; }
}
SelCheckChildNodes(tn, jsqx);
}
}
}
#endregion
小小农民 2012-08-10
  • 打赏
  • 举报
回复

js:
控件:



<div style="background: #FFFFFF;">
<asp:TreeView ID="tvLeft" runat="server" ShowExpandCollapse="true" ExpandDepth="1" ShowLines="True">

</asp:TreeView>
</div>

code:
TreeNode ParentNode;
datatable dt = xxx;//绑定数据
for()//父节点循环
{
node.Value = Value;
node.Text = Text;
node.ShowCheckBox = true;
for()//子节点循环
{
TreeNode node = new TreeNode();

node.Value = Value;
node.Text = Text;
node.ShowCheckBox = true;
if(ischeck)//如果有权限
{
node.Checked = true;
}
ParentNode.ChildNodes.Add(node );
}
tvLeft.Nodes.Add(ParentNode);//把节点绑定到树中
}
//判断节点是否选中,遍历树时看node.Checked = true;还是false就可以了
//点击使权限变成false可以添加个保存按钮,点击时改变数据库值
//代码仅供参考,没有验证,希望对lz有用,呵呵
luhuiming741cs 2012-08-10
  • 打赏
  • 举报
回复
for (int i = 0; i < powerParent.Count; i++)//一级资源

{
PowerList.Nodes.Add(powerParent[i].PowerName);
PowerList.Nodes[i].Tag = powerParent[i].ID;
//如果角色拥有此权限,则选定该节点

if (RolePowerList.Find(p => p.PowerID == powerParent[i].ID) != null) PowerList.Nodes[i].Checked = true;

List<Power> powerChild = powerBll.GetChildNodeByParentID(powerParent[i].ID);
if (powerChild == null) continue;
for (int j = 0; j < powerChild.Count; j++)//二级资源
{
PowerList.Nodes[i].Nodes.Add(powerChild[j].PowerName);
PowerList.Nodes[i].Nodes[j].Tag = powerChild[j].ID;
//如果角色拥有此权限,则选定该节点

if (RolePowerList.Find(p => p.PowerID == powerChild[j].ID) != null) PowerList.Nodes[i].Nodes[j].Checked = true;
}
大概就是这个样子,自己根据需要去改
ShenYong2013 2012-08-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

triview是分父node和子node的,
里面还有一个属性叫tag的,可以保存你要保存的ID,也可以是表示等等
然后就好判断了。。。
[/Quote]

表示==标识
ShenYong2013 2012-08-10
  • 打赏
  • 举报
回复
triview是分父node和子node的,
里面还有一个属性叫tag的,可以保存你要保存的ID,也可以是表示等等
然后就好判断了。。。
Samoul_iixx 2012-08-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
引用 2 楼 的回复:
有该权限就checked=true,没就false


思路我知道的,需要代码解决下的啊。


遍历权限啊,还要什么思路
[/Quote]
- - 这些我都知道啊,需要代码参考一下,关键那些node我弄不清。
luhuiming741cs 2012-08-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用 2 楼 的回复:
有该权限就checked=true,没就false


思路我知道的,需要代码解决下的啊。
[/Quote]

遍历权限啊,还要什么思路
Samoul_iixx 2012-08-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
有该权限就checked=true,没就false
[/Quote]

思路我知道的,需要代码解决下的啊。
luhuiming741cs 2012-08-10
  • 打赏
  • 举报
回复
有该权限就checked=true,没就false
Samoul_iixx 2012-08-10
  • 打赏
  • 举报
回复
来个大虾帮忙解答下啊,在线等

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧