vs2008 asp.net无限层次权限菜单树(二)
vs2008 asp.net无限层次权限菜单树(一)中所实现的树并不能满足权限设置要求,现在要实现的效果如图1.1所示
图(1.1)
每个可设置权限的子节点 旁边还需要设置权限的类型,比如维护,检索,管理等等,这时候使用TreeView控件好像没辙了,没法再在节点对象旁再添加 CheckBox或者其他控件了。
怎么办呢?想了很久,只有自己在cs代码里面写HTML实现动态的树状效果了。
实现机制:
在aspx页面中放一Label控件(或者Literal控件也行),在后台代码中通过递归写HTML,实现树状的展现效果,在其中的子节点上另外再添加自己需要的checkBox控件。整个
树的所有HTML代码在Label控件中显示出来,变成一颗动态的无限递归HTML树。
在aspx页面中写jquery和js脚本,实现树形的展开、收拢和checkBox的选择效果。在cs代码中写HTML参考了TreeView控件的页面HTML源码。只实现了不带折叠线的效果。
带折叠线的效果更加繁琐。有兴趣的高手可以自己尝试实践一下。如果多花点时间,可能可以做一个自定义的Web控件树。好像园子里也有朋友做过类似的控件。
源代码在此,注释算做得比较详细了,当然,匆忙之间,没有仔细做测试和优化。比如在FireFox上有些小问题,没有仔细改了。数据库使用的跟vs2008 asp.net无限层次权限菜单树(一)
是同一数据库,该例子的页面文件为MyTree.aspx