如何用TreeView做一个象CSDN一样的菜单

qiangsheng 2004-04-17 06:19:44
用这么大个题目主要是为了吸引眼球,对不住大伙了。

实际的问题是,用TreeView的时候,点击节点文字时是打开链接,如果没有链接则什么操作都不执行,但是我希望它执行展开或收缩本节点的操作,就象点左边的图一样,如何实现呢?
还有,就是ToolTip的问题,对于整个TreeView有ToolTip,但是每个节点都没有,只能显示默认的内容,如何处理呢?

我的整个树都是在后台用VB.NET生成的,不希望再写js取数据了。
...全文
95 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kfdxxf 2004-04-19
  • 打赏
  • 举报
回复
向 TreeView 添加一个 TreeNode。

<mytree:treeview runat="server">

<mytree:treenode text="节点一">

</mytree:treenode>

</mytree:treeview>


数据绑定

TreeView 也支持数据绑定,因此可以生成动态的内容,下面的示例显示的 TreeView 与前一个示例类似,但没有使用静态内容,而是使用了可扩展标记语言 (XML) 文件来提供 UI 的数据源

<booktree:treeview runat="server" AutoPostBack="true">

<booktree:treenode Text="book" AutoPostBack=true "

Expanded="true" TreeNodeSrc="http:// EventArgs/webcontrols/treeview/book.xml">

</booktree:treenode>

</booktree:treeview>
ljmay168 2004-04-19
  • 打赏
  • 举报
回复
TreeView控件不是有個SelectExpands屬性嗎,設為True就可以選中文字展開節點了.
fuzhan820 2004-04-19
  • 打赏
  • 举报
回复
up
qiangsheng 2004-04-19
  • 打赏
  • 举报
回复
楼上的谢谢了,你说的这些我都知道,但是没有实现我要求的功能——点文字链接展开节点。
帅帅123321 2004-04-19
  • 打赏
  • 举报
回复
private void InitTree(Micro.TreeNodeCollection Nds,string parentId)//建树的基本思路是:从根节点开始递归调用显示子树
{
DataView dv=new DataView();
Micro.TreeNode tmpNd;

dv.Table=datatable;
dv.RowFilter="ParentId='" + parentId +"'";
foreach(DataRowView drv in dv)
{
tmpNd=new Micro.TreeNode();
tmpNd.ID=drv["NodeId"].ToString();
tmpNd.Text=drv["NodeName"].ToString();
tmpNd.ImageUrl=drv["Ico"].ToString();
tmpNd.NavigateUrl=drv["Address"].ToString();
Nds.Add(tmpNd);
InitTree(tmpNd.Nodes ,tmpNd.ID);

}

}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}
帅帅123321 2004-04-19
  • 打赏
  • 举报
回复
我自己做了一个。。你先看看把。。。

namespace treeTest
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Micro=Microsoft.Web.UI.WebControls;

/// <summary>
/// TreeViewShow 的摘要说明。
/// </summary>
public class TreeViewShow : System.Web.UI.UserControl
{
protected Microsoft.Web.UI.WebControls.TreeView treeView;
protected DataTable datatable=new DataTable ();
/*
public TreeViewShow()
{
this.datatable =null;
}
public TreeViewShow(DataTable dt)
{
this.datatable =dt;
}*/
public DataTable Datatable
{
get
{
return datatable;
}
set
{
this.datatable =value;
InitTreeView();
}
}
//建树形目录结构
public void InitTreeView()
{
InitTree(treeView.Nodes,"0");
}
qiangsheng 2004-04-19
  • 打赏
  • 举报
回复
二楼同学用的是孟子老大的例子吧,可是他是自己编的asp,我想要微软ieWebControl的例子。
qiangsheng 2004-04-19
  • 打赏
  • 举报
回复
用微软的TreeView,点击节点文字时不展开该节点,只有点击左边的+/-那个小图形才展开,我就是象点文字的时候也能够展开节点。
buttercup 2004-04-17
  • 打赏
  • 举报
回复
http://fason.nease.net/download/deeptree.rar
linfuguo 2004-04-17
  • 打赏
  • 举报
回复
不明白,是不是想加图片在上面?

62,074

社区成员

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

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

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

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