我在HTML页面中创建了一个树视图
<asp:TreeView ID="TreeView1" runat="server"
onselectednodechanged="TreeView1_SelectedNodeChanged"
PopulateNodesFromClient="False" onunload="TreeView1_Unload">
<Nodes>
<asp:TreeNode Text="Reports" Value="Report">
<asp:TreeNode Text="Status" Value="Service">
</asp:TreeNode>
<asp:TreeNode Text="Status" Value="Status">
</asp:TreeNode>
<asp:TreeNode Text="Stats"
Value="Stats"></asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>
现在我想在我的代码后面的页面加载函数中隐藏Stats节点....
任何建议..谢谢
答案 0 :(得分:1)
我使用Telerik RadTreeView; TreeView没有每个节点的DataBound事件和Visible属性。以下是删除TreeView的子节点的代码。
protected void Page_Load(object sender, EventArgs e)
{
RemoveNodeRecurrently(TreeView1.Nodes, "Status");
}
private void RemoveNodeRecurrently(TreeNodeCollection childNodeCollection, string text)
{
foreach (TreeNode childNode in childNodeCollection)
{
if (childNode.ChildNodes.Count > 0)
RemoveNodeRecurrently(childNode.ChildNodes, text);
if (childNode.Text == text)
{
TreeNode parentNode = childNode.Parent;
parentNode.ChildNodes.Remove(childNode);
break;
}
}
}
答案 1 :(得分:1)
你可以尝试这个,它只适用于Leaf节点。
TreeView1.Nodes[0].Text = "";
TreeView1.Nodes[0].ShowCheckBox = false;
P.S:您需要一个递归函数来访问每个节点。
答案 2 :(得分:0)
将节点文本设置为“”并且不会呈现它。
答案 3 :(得分:0)
![这就是我的用法。] [1]
protected void Page_Load(object sender, EventArgs e)
{
if (Session["type"] == null)
{
RemoveNodeRecurrently(rptTree.Nodes, "Create Users");
}
if (Session["user"] != null)
{
}
else
{
Response.Redirect(ConfigurationManager.AppSettings.Get("RootFolder") + "/ERP - Login.aspx");
}
}
private void RemoveNodeRecurrently(TreeNodeCollection childNodeCollection, string text)
{
foreach (TreeNode childNode in childNodeCollection)
{
if (childNode.ChildNodes.Count > 0)
RemoveNodeRecurrently(childNode.ChildNodes, text);
if (childNode.Text == text)
{
TreeNode parentNode = childNode.Parent;
parentNode.ChildNodes.Remove(childNode);
break;
}
}
}
答案 4 :(得分:0)
protected void Page_Load(object sender, EventArgs e)`{
TreeView1.Nodes.RemoveAt(2); }`