日期:2014-05-18  浏览次数:20937 次

treeview加checkbox实现分配权限的功能
假设treeview结构如下([]表示checkbox)
[]日报
  [] 增加
  [] 删除
  [] 保存
  [] 打印

  打开页面时,这些checkbox会根据从数据库里查询的数据来设置checked属性,如果有增加的权限那么增加的checkbox就会被勾上
  我想先在treeview下勾选好权限,然后点击保存按钮,才去操作数据库。
  现在的问题是:
1.原来没有的权限,勾上checkbox后,怎么记录下来,以便操作数据库
2.原来有的权限,取消勾选,怎么记录下来

有一种办法是设置好后,遍历一下treeview,记录下所有checked的节点,然后再数据库里将所有的权限清空,重新插入哪些checked的节点,这样效率太低了吧,有更好的方法吗?

求思路,求方法。


------解决方案--------------------
探讨

我想用TreeNodeCheckChanged事件来记录点击
可是不起作用
protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
{
string aaa = "<script>alert('check')</script>";
……

------解决方案--------------------
这个一搜一大堆啊
我也是搜了一个改了下就能用,给你参考下吧
private void RecursiveTree(TreeView tree)
{
string aaaaa = "";
TreeNodeCollection nodes = tree.CheckedNodes;
foreach (TreeNode n in nodes)
{
if (n.ChildNodes.Count == 0)//只要最底级checked的数据
{
if (n.Checked)
{
aaaaa = n.Value + "|" + n.Parent.Value;
}
}
}
}

调用:RecursiveTree(this.TreeView1);