C# 如何在TreeView中隐藏根节点?
我正在从DB表动态构建节点。当我运行代码时,根节点也会出现,不会消失。我什么都试过了。在互联网上查找,但尚未找到解决此问题的具体方法 我的ProductCategory表如下所示 下面是.cs文件中的代码C# 如何在TreeView中隐藏根节点?,c#,asp.net,C#,Asp.net,我正在从DB表动态构建节点。当我运行代码时,根节点也会出现,不会消失。我什么都试过了。在互联网上查找,但尚未找到解决此问题的具体方法 我的ProductCategory表如下所示 下面是.cs文件中的代码 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GetTreeViewItems(); } }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetTreeViewItems();
}
}
private void GetTreeViewItems()
{
string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
SqlConnection con = new SqlConnection(cs);
SqlDataAdapter da = new SqlDataAdapter("select * from ProductCategories where ParentId in (0,1,2)", con);
DataSet ds = new DataSet();
da.Fill(ds);
ds.Relations.Add("ChildRows", ds.Tables[0].Columns["ProductCategoryId"],
ds.Tables[0].Columns["ParentId"]);
foreach (DataRow level1DataRow in ds.Tables[0].Rows)
{
if (string.IsNullOrEmpty(level1DataRow["ParentId"].ToString()))
{
TreeNode parentTreeNode = new TreeNode();
parentTreeNode.Text = level1DataRow["ProductCategoryName"].ToString();
parentTreeNode.Value = level1DataRow["ProductCategoryId"].ToString();
parentTreeNode.NavigateUrl = "?catid=" + level1DataRow["ProductCategoryId"].ToString();
int i = (int)level1DataRow["ProductCategoryId"];
GetChildRows(level1DataRow, parentTreeNode);
TreeView1.Nodes.Add(parentTreeNode);
}
}
}
private void GetChildRows(DataRow dataRow, TreeNode treeNode)
{
DataRow[] childRows = dataRow.GetChildRows("ChildRows");
foreach (DataRow row in childRows)
{
TreeNode childTreeNode = new TreeNode();
childTreeNode.Text = row["ProductCategoryName"].ToString();
childTreeNode.Value = row["ProductCategoryId"].ToString();
childTreeNode.NavigateUrl = "?catid=" + row["ProductCategoryId"].ToString();
treeNode.ChildNodes.Add(childTreeNode);
if (row.GetChildRows("ChildRows").Length > 0)
{
GetChildRows(row, childTreeNode);
}
}
}
}
你不能这样做。我希望一个节点是不可见的,但它是要显示的子节点,那么唯一的方法是不添加根节点,而是将子节点添加为根节点
要么这样,要么编写自己的TreeView控件。好吧,我也发现这是不可能的。如果我想禁用根链接怎么办。我是说,如果我让它变得不可接近。有办法吗?根据控件的不同,您可以将Enabled设置为False。这将产生什么样的影响(对节点和子节点)取决于您使用的控件。听起来最好的方法不是添加层次结构的根,而是将其子节点添加为TreeView根节点(并将其子节点添加为子节点)。TreeView通常不限于一个根节点。