最近在做权限模块,挺头痛的东西。不包括权限部分的业务,还包括权限部分的界面实现。由于采用了微软的Treeview控件来分配权限,所以碰到网上热烈讨论的有关TreeView操作的刷新问题,在众位先人和同事的帮助下,终于使Treeview的问题得到了较好的解决。
1、前台控制展开,收缩,Check/UnCheck,后台控制SelectedIndexChanged。
解决方法:
将autopostback设置成false;
在body里添加<bodyonload="initTree()">
然后在PageLoad里写:
stringstrTreeName="TreeView1";
stringstrRef=Page.GetPostBackEventReference(TreeView1);
stringstrScript="<scriptlanguage=\"JavaScript\">\n"+"<!--\n"+"functioninitTree(){\n"+""+strTreeName+".onSelectedIndexChange=function(){\n"+"if(event.oldTreeNodeIndex!=
event.newTreeNodeIndex)\n"+"this.queueEvent(’onselectedindexchange’,event.oldTreeNodeIndex+’,’+event.newTreeNodeIndex);\n"+"window.setTimeout(’"+strRef.Replace("’","\\’")+"’,0,’JavaScript’);\n"+"}\n"+"}\n"+"//-->\n"+"</script>";
Page.RegisterClientScriptBlock("InitTree",strScript);
2、在CheckBox情况下。在前台选择checkbox后进行刷新,发现Checkbox的状态变得混乱,有些应该被选上的被弄丢了。这个问题是微软Treeview.htc中的一个bug,而且问题之前网上一直未发现有好的解决方法。昨天发现有位牛哥解决了这个问题,他完善了htc文件,并且在htc中增加了在checkbox情况下父子联动的效果,对于需要实现这个功能而对JS不太熟的人真是个福音啊,因为这意味着你不用写任何代码就可以实现这个功能了,真是非常感激啊。我把这位牛哥文章的http提供给大家:http://blog.csdn.net/cuike519/archive/2005/02/02/278271.aspx
3、对于SelectedIndexChanged,可以做到进一步的自定义。即如果树有三层,可以使点击第一层,第二层时不进行Postback,只是在选择第三层时才进行Postback。
这个其实就是在第一点上进行修改,对于onSelectedIndexChange处发的条件进行扩充。上面代码中只是判断了如果新节点与旧节点不是同一节点,就触发SelectedIndexChange,执行_dopostback,你只要将条件改成你想要的限制条件就可以做到你想要的控制。不过要注意if后面的语句啊,if后面没有跟{号,如果你要加附加条件的话,意味着应该有条件的执行后面两句。
以上就是我两天来的成果,呵呵。
分享到:
相关推荐
这是一个关于ASP.NET中treeview控件用法的小程序!
asp.net中treeview与数据库实现动态连接,利用数据库动态添加树节点
在asp.net(C#)中TreeView控件的数据绑定,本例子绑定是目录结构(即是文件夹),按目录等级来分层绑定的,用于目录管理,可自己添加功能代码实现指定文件夹的新建、名称修改,以及文档的上传、转移及各种管理。
asp.net中treeview空间动态生成!! asp.net中treeview空间动态生成!! asp.net中treeview空间动态生成!! asp.net中treeview空间动态生成!! asp.net中treeview空间动态生成!!根据数据库信息层级生成树
ASP.NET中TreeView节点上移下移 实现无刷新效果
自定义 asp.net 中treeview 的click事件
在asp.net中绑定treeview控件
Asp.net 2.0 Treeview 无限级无刷新示例
asp.net TreeView 与 GridView 相结合管理无限极分类,本资源用javascript脚步实现选中离开后依然保持变色,直到选中另一个节点
ASP.NET 中用TreeView实现树目录的实例
asp.net 中的treeview进行一次性绑定数据库中所有的内容
asp.net 利用TreeView控件动态生成无限级树.rar
这是一个学习ASP.NET treeview控件的demo,通过递归生成一棵部门树。部门表结构在解决方案中。解压密码: 1435279215
在ASP.NET中使用Treeview控件和XML
NET采开发ASP.NET Web应用程序的。其包含了四种IEWeb控件,这些Web控件通过提供Web访问者熟悉的用户界面,增强了ASP.NETWeb页面。Tree View Web控件就是其中之一。本文就是详述如何使用Tree View控件采生成树目录...
ASp.net treeView菜单列表
c#语言asp.net实现treeview控件读数据库动态生成树
c#语言asp.net实现treeview控件读数据库动态生成树
给ASP.NET中的TreeView绑定DataSet或ObjectDataSource对象