最近在做权限模块。包括权限部分的界面实现。由于采用了微软的treeview控件来分配权限,所以碰到网上热烈讨论的有关treeview操作的刷新问题,在众位先人和同事的帮助下,终于使treeview的问题得到了较好的解决。 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。
1、前台控制展开,收缩,check/uncheck,后台控制selectedindexchanged。
解决方法:
将autopostback设置成false;
在body里添加 <body onload="inittree()">
然后在pageload里写:
string strtreename = "treeview1";
string strref = page.getpostbackeventreference(treeview1);
string strscript = "<script language=\"javascript\"> \n" + "<!-- \n" + " function inittree() { \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 );
这个其实就是在第一点上进行修改,对于onselectedindexchange 处发的条件进行扩充。上面代码中只是判断了如果新节点与旧节点不是同一节点,就触发selectedindexchange,执行_dopostback,你只要将条件改成你想要的限制条件就可以做到你想要的控制。不过要注意if后面的语句啊,if后面没有跟{号,如果你要加附加条件的话,意味着应该有条件的执行后面两句。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器