VS2005中treeview问题

scocsdn 2008-05-22 12:01:23
项目中用到treeview,要求有个全部展开和全部折叠的功能
在后台用ExpandAll() 和 CollapseAll() 函数,但刷新太厉害了,受不了

哪位兄台有js写的该功能的代码,不胜感激!
注:要VS2005中的treeview
...全文
207 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
scocsdn 2008-05-22
  • 打赏
  • 举报
回复
是这样的:
在treeview外有两个按钮openall和closeall,来控制treeview的展开和折叠

目前的办法是用后台代码,刷新的很厉害

protected void open_Click(object sender, EventArgs e)
{
TreeView1.ExpandAll();
}

protected void Close_Click(object sender, EventArgs e)
{
TreeView1.CollapseAll();
}
yuanmanguo 2008-05-22
  • 打赏
  • 举报
回复
up
mark
地下室小红叔 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 scocsdn 的帖子:]
项目中用到treeview,要求有个全部展开和全部折叠的功能
在后台用ExpandAll() 和 CollapseAll() 函数,但刷新太厉害了,受不了

哪位兄台有js写的该功能的代码,不胜感激!
注:要VS2005中的treeview
[/Quote]

是你处理的不当(猜你是在treeview的单击事件里处理的展开/合闭) 实际在后台生成树结构时就可以定义客户端的相关操作了 能一次性生成树和js脚本(.net自动生成) 客户端不会有重载刷新现象
scocsdn 2008-05-22
  • 打赏
  • 举报
回复
顶一下
路过的帮忙看看
wxg22526451 2008-05-22
  • 打赏
  • 举报
回复
sorry,忘了是要全部展开和全部折叠的功能-_-!
wxg22526451 2008-05-22
  • 打赏
  • 举报
回复
转自http://www.cnblogs.com/xxpyeippx/archive/2007/10/29/941630.html,LZ试试看~
TreeView无刷新展开
在实际工作中,我们总会遇到这样的问题:
TreeView的Node中,含有子菜单的,需要一点就自动展开(最好不要刷新),不含子菜单的就转向它的URL.
这个功能其实很容易实现.把TreeNode的SelectAction设为Expand即可.
Surance Yin@ Surance Center
scocsdn 2008-05-22
  • 打赏
  • 举报
回复
项目已经做好了,不可能再换控件了
谢谢楼上
lfywy 2008-05-22
  • 打赏
  • 举报
回复
梅花雪的不错!在资源里找!
代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="designer" content="csdn design team" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<script type="text/javascript" src="/ui/scripts/jsframework.js"></script>

<!-- base href="http://communityserver:83/" / -->
<title>CSDN BBS tree</title>
<style type="text/css">/*<![CDADA[*/
body
{
font-size: 12px;
}
/*]]>*/</style>
</head>
<body style="background:url(/ui/styles/default/images/tree_bg.jpg) repeat-y">

<script type="text/javascript">/*<![CDATA[*/
var data={};
data["-1_0"] = "text: CSDN\u79ef\u5206\u5236\u8bba\u575b; url: /default.aspx;";
data["0_10"] = "text: \u6211\u611f\u5174\u8da3\u7684\u8bba\u575b; disabledLink:true;JSData:/WebConsole/DynamicTreeNodeData/MyFavouriteForum.ashx";
data["0_21"] = "text: \u6211\u8bbf\u95ee\u8fc7\u7684\u8bba\u575b; disabledLink:true;JSData:/WebConsole/DynamicTreeNodeData/RecentVisitedForum.ashx";
//部分省略......


data["0_9"] = "text: \u4ea7\u54c1/\u5382\u5bb6; url:https://forum.csdn.net/BList/ADS/; JSData:/WebConsole/TreeNodeData/ADS.js";
data["0_2"] = "text: \u65b0\u7248\u8bba\u575b\u4f53\u9a8c; url:https://forum.csdn.net/BList/Demo/; JSData:/WebConsole/TreeNodeData/Demo.js";


data["0_33"] = "text: \u7cfb\u7edf\u529f\u80fd ; disabledLink:true; ";
data["33_3301"] = "text: \u53ef\u7528\u5206\u6350\u8d60; url:https://forum.csdn.net/PointForum/Forum/PointDonate.aspx;";
data["33_3302"] = "text: \u603b\u4e13\u5bb6\u699c; url:https://forum.csdn.net/PointForum/Forum/ExpertTopList.aspx;";
data["33_3303"] = "text: \u5927\u7248\u4e3b\u6682\u884c\u5236\u5ea6; url:/Help/BigModeratorRule.htm;";
data["33_3304"] = "text: \u793e\u533a\u79ef\u5206\u89c4\u5219; url:/Help/Rule.htm;";
data["33_3305"] = "text: \u4f7f\u7528\u5e2e\u52a9; url:/Help/HelpCenter.htm;";



data["0_100"] = "text: \u7248\u4e3b\u7ba1\u7406\u529f\u80fd; url:https://forum.csdn.net/PointForum/Manage/Default.aspx;";


Using("System.Web.UI.WebControls.MzTreeView");
var a = new MzTreeView();
a.setDefaultTarget("ContentFrame");
a.dataSource = data;
a.autoSort = false; //这句
a.onclick=function( e) //加了这个事件处理
{
var n = e.target;
n.expanded ? n.collapse() : n.expand();
}
document.write(a.render());
try
{

a.focusNodeByPath("-1_0_5_501");

}
catch(ex){}
/*]]>*/</script>

</body>
</html>

右击CSDN里的树就是这种方法做的,你可以通过整理把JS文件下载下来!
望给你帮助!
chinahnzl 2008-05-22
  • 打赏
  • 举报
回复
有个mvp写了一个..给你地址..你自己去看看..

http://www.cnblogs.com/birdshome/archive/2005/03/11/117168.html
franksnow 2008-05-22
  • 打赏
  • 举报
回复
updataPanel

马马虎虎可以实现无刷新!~
amandag 2008-05-22
  • 打赏
  • 举报
回复
可以使用ajax,不过ajax和treeview配合是有些小bug的
地下室小红叔 2008-05-22
  • 打赏
  • 举报
回复
<input type="button" onlick="javascript:TreeView_ToggleNode(TreeView1_Data,1,TreeView11,' ',TreeView11Nodes)" value="打开/关闭"/>

应该是html代码呵呵
还有 生成树时要使根节点的Expand为false 其它所有子节点为true才能实现你要的效果
地下室小红叔 2008-05-22
  • 打赏
  • 举报
回复
既然要不刷新 那展开和折叠的控制就不应该用服务器按钮和事件了(它会回传)
在客户端浏览时看看有一个TreeView_ToggleNoder的js函数 系统自动生成的
比如TreeView_ToggleNode(tvMenu_Data,18,tvMenun18,' ',tvMenun18Nodes)已生成的函数 里面的参数根据你初始化树和节点时生成
tvMenu是TreeView的ID
18是节点的value值(TreeNode.NodeValue)
tvMenun18Nodes指要展开/闭合的子节点集合
根据这个规则你就可以自已写个js函数并通过<input type='button'/>控制开闭了

比如你的可以类似这样(假设根节点值为1)
<input type="button" onlick="javascript:TreeView_ToggleNode(TreeView1_Data,1,TreeView11,' ',TreeView11Nodes)" value="打开/关闭"/>
由于开/闭仅由此一个函数控制 所以你要实现两个按钮分别控制 还要加一个表示当前展开/闭合状态的全局变量 与上面的方式整合起来写成js方法
avrilxu 2008-05-22
  • 打赏
  • 举报
回复
xqy_2007 2008-05-22
  • 打赏
  • 举报
回复
路过看看,顺便学习一下.

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧