使用ado.net数据库连接填充treeview

时间:2015-11-18 12:23:19

标签: c# asp.net ado.net treeview

我正在尝试将我的数据从数据库添加到我的树视图中,根据他们的'类别'属性。我有yangin,kamera,alarm和otomasyon类别以及模拟,HDCVI,HDTVI,AHD和IP作为子节点。例如,我有两个数据与" HDCVI Kameralar" Category属性中的值。我需要这两个数据出现在" HDCVI Kameralar"节点。

<asp:TreeView ID="TreeView1" runat="server">
            <Nodes>
                <asp:TreeNode Text="Yangın" Value="Yangin"></asp:TreeNode>
                <asp:TreeNode Text="Kamera" Value="Kamera">
                    <asp:TreeNode Text="Analog Kameralar" Value="Analog Kameralar"></asp:TreeNode>
                    <asp:TreeNode Text="HDCVI Kameralar" Value="HDCVI Kameralar"></asp:TreeNode>
                    <asp:TreeNode Text="HDTVI Kameralar" Value="HDTVI Kameralar"></asp:TreeNode>
                    <asp:TreeNode Text="AHD Kameralar" Value="AHD Kameralar"></asp:TreeNode>
                    <asp:TreeNode Text="IP Kameralar" Value="IP Kameralar"></asp:TreeNode>
                </asp:TreeNode>
                <asp:TreeNode Text="Alarm" Value="Alarm"></asp:TreeNode>
                <asp:TreeNode Text="Otomasyon" Value="Otomasyon"></asp:TreeNode>
            </Nodes>
        </asp:TreeView>

网络上的例子对我来说太复杂了。我只是不知道该foreach循环中该做什么。谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

您可以像这样使用LINQ: -

private void CreateTreeView()
{
   //Don't filter the list 
   List<ProductTable> newSource = entity.ProductTable.ToList();
   foreach (var i in newSource)
   {
       //find the node with matching atribute 
       TreeNode node = TreeView1.Nodes.OfType<TreeNode>()
                                          .FirstOrDefault(x => x.Text == i.Attribute);
       //finally add new treenodes 
       if(node != null)
            node.ChildNodes.Add(new TreeNode { Text = i.Attribute, Value = i.Category});
   }
}