动态treeview添加子节点连接问题(加分)

我现在动态创建二级treeview,现在如果客户端添加一个子节点,并且要动态指定链接地址,怎么做!我知道有这样一个属性,trNode.NavigateUrl=sTreeU... 我现在动态创建二级treeview,现在如果客户端添加一个子节点,并且要动态指定链接地址,怎么做!我知道有这样一个属性,
trNode.NavigateUrl = sTreeUrl;,我的想法是当要添加一个子节点时,链接如果确实下来,比如:
我要添加一个子节点叫部门管理,此时这里的地址也用NavigateUrl属性来写?如果子节点叫其它什么的名字,用NavigateUrl属性怎么来满足?

因为这里的子节点是动态添加,其中的链接怎么在动态添加的情况下,来确定呢?
看我代码:

子节点名称:<asp:TextBox ID="txtName" runat="server" Width="152px">
所属于父节点:<asp:DropDownList ID="drParentId" runat="server"></asp:DropDownList>
<asp:Button ID="btnAdd" runat="server" Text="添加" CssClass="btnCSS"
onclick="btnAdd_Click" />

protected void btnAdd_Click(object sender, EventArgs e)
{
BLL bl=new BLL();
//这里的链接地址如何确定的
bl.AddChildNode(txtName,drParentId.SelectedIndex,"链接地址");
展开
 我来答
应煜祺GD
2011-03-14 · 超过34用户采纳过TA的回答
知道答主
回答量:261
采纳率:0%
帮助的人:88.9万
展开全部
数据库设计时,每个节点加个字段NavigateUrl,存放的是你录入的URL地址。然后每次读取节点就将这个URL动态读取出来,放在你的NavigateUrl属性上。
给你一个代码实例:看懂了就非常简单了。

/// <summary>
/// 初始加载树控件
/// </summary>
/// <param name="userId"></param>
private void Innit(int userId)
{
DataSet FolderSet = InitMenu(userId);
if (FolderSet.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < FolderSet.Tables[0].Rows.Count; i++)
{
//加载父节点
TreeNode fatherNode = new TreeNode();
if (FolderSet.Tables[0].Rows[i]["ParentId"].ToString() == "0")
{
fatherNode.Value = FolderSet.Tables[0].Rows[i]["ID"].ToString();
fatherNode.Text = FolderSet.Tables[0].Rows[i]["Title"].ToString();
fatherNode.NavigateUrl = "IndividualFluxs.aspx?FolderId=" + fatherNode.Value;
// fatherNode.ImageUrl = "../../Image/Tree/folder.gif";
fatherNode = GetTreeNode(fatherNode, FolderSet);
this.tvFolder.Nodes.Add(fatherNode);
}
}
}
}

/// <summary>
/// 子节点
/// </summary>
/// <param name="fatherNode"></param>
/// <param name="dataset"></param>
/// <returns></returns>
public static TreeNode GetTreeNode(TreeNode fatherNode, DataSet dataset)
{
for (int i = 0; i < dataset.Tables[0].Rows.Count; i++)
{
TreeNode childNode = new TreeNode();
if (dataset.Tables[0].Rows[i]["ParentId"].ToString() == fatherNode.Value)
{
childNode.Value = dataset.Tables[0].Rows[i]["ID"].ToString();
childNode.Text = dataset.Tables[0].Rows[i]["Title"].ToString();
childNode.NavigateUrl = "IndividualFluxs.aspx?FolderId=" + childNode.Value;
// childNode.ImageUrl = "../../Image/Tree/folder.gif";
childNode = GetTreeNode(childNode, dataset);
fatherNode.ChildNodes.Add(childNode);
}

}
return fatherNode;
}
Andomiel
2011-03-14
知道答主
回答量:19
采纳率:0%
帮助的人:9.2万
展开全部
看了半天,没明白你的意思,如果你是想动态添加一个导航树的新节点,那么他的URL肯定还是由你来指定,然后再动态添加到你要添加的父节点下:
这样你可以直接在页面上加一个<asp:TextBox ID="txtUrl" runat="server" Width="152px">
然后后台里,引用他:bl.AddChildNode(txtName,drParentId.SelectedIndex,txtUrl.Text);
这样就可以了啊,添加完成后,你添加上去的这个节点的URL就是你刚输入的!
追问
URL由我来指定的话,怎么指定,比如用户添加的是我的桌面,又或者是部门管理,又或者是其它什么。。这里的url我怎么来设定?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
depluin
2011-03-14 · TA获得超过3179个赞
知道大有可为答主
回答量:3378
采纳率:75%
帮助的人:2495万
展开全部
NavigateUrl如果没有就是空啊,说了半天没明白你到底先鼓掌哦什么.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式