你的问题我没看很懂,不过对于权限树的设计,我可以提供一些参考意见:
一般权限树有两种:
第一种就是把所有的节点都列出来,但是如果这个用户对于这个权限不够的话,就无法对这个节点进行相关操作。
第二种就是不同用户登陆进去,出来的树是不一样的,也就说不属于这个用户的权限之内的节点是不会显示出来的。
第一种,主要是程序中对其进行控制。(个人觉得比较麻烦)
第二种,只要数据库建的好,很容易实现。(而且效率也高)对于你的第一个问题,你试试TreeNode好像有一个Checked属性,只要把它设置成为false,应该就选不中了。
 对于第二个问题,我觉得在Web上不刷新很难实现(关注中)

解决方案 »

  1.   

    用图片自己实现模拟的CheckBox我想还是可以的吧!
      

  2.   

    你用抓图工具抓下来3中状态的勾.
    在向TreeView绑定数据的时候可以判断每个节点加载什么样的勾(用该勾的路径替换一个img对象路径)!至于一些状态信息可以保存在target里面!我觉得这样可以!以前我在做权限管理的树的时候也遇到同样的问题但是我没有管他!你可以试一试!不过我觉得这样做的价值不大!不知道其他的高人有没有好的办法!期待中!另外现在的TreeView好像不能不刷新实现上面的功能!可能在ASP.NET2.0以后也许可以!听说那时候TreeView就是内部组件了!
      

  3.   

    现在还有一个问题就是:
    我用任务管理器查看IE占用的资源,发现我在点击页面上的连接打开有Treeview的子窗口后,
    对Treeview进行了操作,因为树的autopostback=true,所以每一次折叠树都会刷新,同时IE所占的内存随着每次刷新也暴涨几MB之多,最惨的就是当我退出这个子窗口返回父页的时候,被IE占用的内存只回收了一小部分,因此当我不关闭父页的时候,不停的开关子窗口对树进行操作,很快IE就暴涨到100MB,是不是在对每次建TreeView后,在退出子窗口的时候要做一些清理工作才行啊,我怀疑是内存泄漏啊。-_-!
      

  4.   

    四态
    <input type="checkbox" checked>
    <input type="checkbox">
    <input type="checkbox" disabled checked>
    <input type="checkbox" disable>