- 热门文章:
- · 实现一个Asp.net自定义Back控件
- · 在asp.net中长内容自动分页的实现
- · asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度的示例(二)
- · asp.net利用多线程执行长时间的任务,客户端显示出任务的执行进度的示例(一)
- · 在ASP.NET中使用Global.asax文件
- · 解决ASP.NET上传文件大小限制
- · ASP.NET如何在窗体和窗体之间传送数据
- · 令你心动的Asp.net 开发中的MessageBox控件
- · asp.net三种重定向方法的总结
- · asp.net datagrid实现多层表头
- · 一个在ASP.NET中打印的问题
- · 使用ASP.NET Web服务代理的URL行为属性
上一篇:ASP.NET导出数据到Excel >>
Asp.net中Treeview终极解决方案!
最近在做权限模块,挺头痛的东西。不包括权限部分的业务,还包括权限部分的界面实现。由于采用了微软的Treeview控件来分配权限,所以碰到网上热烈讨论的有关TreeView操作的刷新问题,在众位先人和同事的帮助下,终于使Treeview的问题得到了较好的解决。
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 );
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自定义Back控件 >>
相关文章:
- · [ASP.NET 教程] 三. Web Forms编程模型
- · ASP.NET立即上手教程 10
- · ASP.NET如何在窗体和窗体之间传送数据
- · ASP.NET中取代ASP的RS(Remote Scripting)技术的Framework
- · [ASP.NET 教程] 三. Web Forms编程模型
- · [ASP.NET 教程] 二. Web Forms
- · [ASP.NET 教程] 一. Web基础
- · ASP.NET立即上手教程 6
- · ASP.NET立即上手教程 5
- · ASP.NET身份模拟
- · 选择ASP.NET代码编写策略
- · ASP.NET文件上传程序的源代码
- · ASP.NET HTTP运行时组成详解
- · ASP.NET Whidbey中实现Provider
- · Asp.net+Xml实现无数据库论坛一点即通
- · ASP.NET保持用户状态的九种选择(下)
- · ASP.NET保持用户状态的九种选择(上)
- · ASP.NET的用户控件
- · ASP.NET对IIS中的虚拟目录进行操作
- · ASP.NET读取POP3邮件的操作
- · 基于ASP.NET实现全球化
- · ASP.NET中使用IFRAME建立类Modal窗口
- · 解决ASP.NET创建的线程的用户改变引发的拒绝访问错误
- · 在ASP.NET中实现弹出日历
- · ASP.NET中共用代码
- · 实现一个Asp.net自定义Back控件
- · ASP.net下的前台日历控件源代码
- · Asp.net中对象使用的实例
- · ASP.NET 链接数据库基础
- · 在ASP.NET下使用水晶报表一
- · Asp.net中对象使用的实例
- · Asp.Net中使用水晶报表(下)
- · Asp.Net中使用水晶报表(中)
- · Asp.Net中使用水晶报表(上)
- · 在vb.net中使用webbrowser控件和mshtml以及流操作体会(vb.net内嵌IE,拆取 Web 页)
- · 在ASP.NET 中实现单点登录
- · asp.net 关于form认证的一般设置
- · Asp.net中对象使用的实例
