动态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,"链接地址");
} 展开
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,"链接地址");
} 展开
3个回答
展开全部
数据库设计时,每个节点加个字段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;
}
给你一个代码实例:看懂了就非常简单了。
/// <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;
}
展开全部
看了半天,没明白你的意思,如果你是想动态添加一个导航树的新节点,那么他的URL肯定还是由你来指定,然后再动态添加到你要添加的父节点下:
这样你可以直接在页面上加一个<asp:TextBox ID="txtUrl" runat="server" Width="152px">
然后后台里,引用他:bl.AddChildNode(txtName,drParentId.SelectedIndex,txtUrl.Text);
这样就可以了啊,添加完成后,你添加上去的这个节点的URL就是你刚输入的!
这样你可以直接在页面上加一个<asp:TextBox ID="txtUrl" runat="server" Width="152px">
然后后台里,引用他:bl.AddChildNode(txtName,drParentId.SelectedIndex,txtUrl.Text);
这样就可以了啊,添加完成后,你添加上去的这个节点的URL就是你刚输入的!
追问
URL由我来指定的话,怎么指定,比如用户添加的是我的桌面,又或者是部门管理,又或者是其它什么。。这里的url我怎么来设定?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
NavigateUrl如果没有就是空啊,说了半天没明白你到底先鼓掌哦什么.....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询