动态加载treeview子节点链接?

shikun110 2011-02-22 02:42:31
我是用的母板页放的treeivew,从数据库读取出来节点名!现在我在父节点下,动态添加一个子节点!比如父节点叫做
“系统桌面”,我想在父节点下添加一个子节点叫做“文件传送”(这里是客户端来添加,所以客户端添加的子节点是无法预知的),此时子节点下的链接地址在客户端怎么确定呢?我知道有一个trNode.NavigateUrl = sTreeUrl;属性
在这里的链接地址如果确定呢?
...全文
161 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shikun110 2011-02-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fengyarongaa 的回复:]

C# code
/// <summary>
/// 给当前节点添加子节点
/// </summary>
/// <param name="node">当前节点</param>
/// <param name="pid">当前节点的ID</param>
protected void AddPages(TreeNode node, string pid)
……
[/Quote]
有点启发。。
shikun110 2011-02-22
  • 打赏
  • 举报
回复

private void Bind()
{
tvNode.Nodes.Clear();
IList<Treelist> treelist = bTree.getSystemNodelist();//所有父节点
foreach (Treelist tlist in treelist)
{
string nodeId = tlist.TreeId.ToString();//第一层节点id
string nodeName = tlist.TreeName;//第一层节点名称
TreeNode fatherNode = this.CreatTreeNode(nodeName, nodeId, "", "image/CloseTree.gif");//根据节点信息,创建第一层节点
CreateChildTree(nodeId, fatherNode);//创建子节点
tvNode.Nodes.Add(fatherNode);//将第一层节点加入到TreeView中
}
}
/// <summary>
/// 创建一个树节点,返回一个树节点对象,参数内容是:
/// 节点名称,节点ID,链接地址,正常图标,展开后的图标
/// </summary>
private TreeNode CreatTreeNode(string sTreeName, string sTreeid, string sTreeUrl, string sTreeImg)
{
TreeNode trNode = new TreeNode();
trNode.Text = sTreeName;
trNode.Value = sTreeid;
trNode.NavigateUrl = sTreeUrl;
trNode.ImageUrl = sTreeImg;
return trNode;
}
/// <summary>
/// 创建第二层节点
/// </summary>
/// <param name="nodeId"></param>
/// <param name="fatherNode"></param>
private void CreateChildTree(string nodeId, TreeNode fatherNode)
{
IList<Treelist> childTree = bTree.getTreeParentIdList(int.Parse(nodeId));//得到所有父节点下的子节点
foreach (Treelist trList in childTree)
{
string ChildNodeId = trList.TreeId.ToString();//第二层节点id
string ChildNodeName = trList.TreeName;//第二层节点名称
string NodeUrl = ResolveUrl(trList.TreeUrl.Trim());//将路径转换为在客户端可用的URL
TreeNode childNode = this.CreatTreeNode(ChildNodeName, ChildNodeId, NodeUrl, "image/CloseTree.gif");
fatherNode.ChildNodes.Add(childNode);
}
}



现在我只用了两层,所有节点(子节点和父节点)都是放在一个表,表中有一个链接地址字段
ycproc 2011-02-22
  • 打赏
  • 举报
回复
 /// <summary>
/// 给当前节点添加子节点
/// </summary>
/// <param name="node">当前节点</param>
/// <param name="pid">当前节点的ID</param>
protected void AddPages(TreeNode node, string pid)
{
DataSet ds = lm.GetPage(pid);
if (ds != null && ds.Tables.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
TreeNode childnode = new TreeNode();
childnode.Text = dr["BigPageName"].ToString();
childnode.NavigateUrl = "bbsSolution.aspx?PageId=" + dr["PageId"].ToString();
childnode.Target = "mainFrame";
//给当前节点添加子节点
AddPages(childnode, dr["PageId"].ToString());
if (node == null)
{
TreeView1.Nodes.Add(childnode);
}
else
{
node.ChildNodes.Add(childnode);
}
}

}
}
ycproc 2011-02-22
  • 打赏
  • 举报
回复
treeview的 DataSource 绑定 数据啊
朔麦儿 2011-02-22
  • 打赏
  • 举报
回复
就是说你现在只有一层结构?
你的数据库就只是存节点信息?
把你的treeview代码贴出来看看吧
shikun110 2011-02-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shikun110 的回复:]

引用 1 楼 timzhufaith 的回复:

你站点要有文件传送的页面吧?添加就是了

如果是其它的子节点呢,比如消息管理。。(子节点名字是客户端输入的)
[/Quote]
就是在父节点下添加子节点,输入子节点名称不。。就是不知道怎么处理子节点链接地址
hairuiwoai 2011-02-22
  • 打赏
  • 举报
回复
客户端是怎样添加子节点的

请楼主说一下
shikun110 2011-02-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 timzhufaith 的回复:]

你站点要有文件传送的页面吧?添加就是了
[/Quote]
如果是其它的子节点呢,比如消息管理。。(子节点名字是客户端输入的)
TimZhuFaith 2011-02-22
  • 打赏
  • 举报
回复
你站点要有文件传送的页面吧?添加就是了

62,046

社区成员

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

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

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

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