当前位置: 首页 > 知识库问答 >
问题:

窗口形成树状视图与动态子

尉迟安民
2023-03-14

我正在用C#开发一个窗口表单,使用数据库中的数据构建一个树视图。有一个存储过程,给出以下信息的列表

id-节点id描述-树视图中显示的值是EndNode-0,如果它是结束节点;1,如果这个节点有孩子

如果isEndNode为1,那么我必须使用当前节点的id调用相同的存储过程,以接收其下的子节点列表。

我已经建立了一个机制来调用存储过程并获取项目列表,但我不确定如何填充树结构。我想我会将第一个列表显示为父节点,当用户单击sign展开时,我会调用store过程并将新项作为子项添加到当前节点。我不知道如何告诉节点它是父节点而不是结束节点。有人建造过这样的东西吗?请帮忙

共有1个答案

徐鑫鹏
2023-03-14

我已经为您创建了一个示例,您可以在其中了解如何在您的应用程序中执行此操作。

数据库中创建了一个表Employees

最初,员工的名字会出现在树视图上

当姓名展开时,可以查看他们的年龄和电话号码。

public Form1()
{
    InitializeComponent();
    initTreeView();  //TreeView without any nodes in it
}

void initTreeView()
{
    SqlConnection con = new SqlConnection();
    con.ConnectionString = _ConnectionString;
    con.Open();
    using (SqlCommand comm = new SqlCommand("Select Name From Employees", con))
    using (SqlDataReader read = comm.ExecuteReader())
        while (read.Read())
        {
            TreeNode tn = new TreeNode(read["Name"].ToString());
            tn.Nodes.Add(new TreeNode());
            treeView1.Nodes.Add(tn);
        }

    treeView1.BeforeExpand += treeView1_BeforeExpand;
}

void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{
    TreeNode tNode = e.Node;
    string empName = tNode.Text;
    tNode.Nodes.Clear();
    SqlConnection con = new SqlConnection();
    con.ConnectionString = _ConnectionString;
    con.Open();
    using (SqlCommand comm = new SqlCommand("Select Age, PhoneNumber From Employees Where Name = @empName", con))
    {
        comm.Parameters.AddWithValue("@empName", empName);
        using (SqlDataReader read = comm.ExecuteReader())
            if (read.Read())
            {
                TreeNode nodeAge = new TreeNode(read["Age"].ToString());
                TreeNode nodePhone = new TreeNode(read["PhoneNumber"].ToString());
                tNode.Nodes.AddRange(new TreeNode[] { nodeAge, nodePhone });
            }
    }
}
 类似资料:
  • 我试图在Windows上查看antlr4解析树。我按照https://www.antlr.org/上的说明设置了antlr4路径和grun路径,还添加了类路径。带有"-tree "的grun命令可以工作,但是当我指定"-gui "时,它在cmd中冻结了。 我尝试按照Java上的指令修复该错误消息无法打开/创建prefs错误,它消失了,但我仍然看不到解析树。

  • 我有一个前台服务,按下按钮后会显示一个窗口。有没有办法隐藏(或过度隐藏)服务窗口显示屏上的系统状态栏?有我可以用的旗子吗?我试着到处找,但运气不好。

  • 问题内容: 我有一个形状为(6,2)的numpy数组 我需要一个步长为1且窗口大小为3的滑动窗口,如下所示: 我正在寻找一种解决方案。如果您的解决方案可以参数化原始数组的形状以及窗口大小和步长大小,那就太好了。 问题答案: In [1]: import numpy as np 您可以这样写: 只要,这实际上并不取决于原始数组的形状。请注意,在交互式版本中,我从不使用任何长度。形状的第二维无关紧要;

  • 选择无状态滑动窗口操作的一些注意事项是什么(例如,通过updateStateByKey或新mapStateByKey)选择保持状态(例如通过updateStateByKey或新mapStateByKey)时,使用火花流处理连续的有限事件会话流? 例如,考虑以下场景: 一种可穿戴设备跟踪由穿戴者进行的体育锻炼。该装置自动检测何时开始锻炼,并发出信息;在锻炼过程中发出附加信息(如心率);最后,当练习完

  • 问题内容: 我正在构建一个从外部源获取运行时JSON消息的应用程序。 我对消息文本的结构一无所知。 我想获取此JSON文本,将其呈现到树视图(或等效的UI),在我刚刚动态创建的树视图中编辑此JSON,然后将文本发送回源。 我真的不知道从哪里开始。有什么建议吗? 问题答案: 注意:此示例使用NewtonSoft Json。右键单击解决方案,然后单击管理NuGet软件包以安装参考。

  • 本文向大家介绍spring+srpingmvc+hibernate实现动态ztree生成树状图效果,包括了spring+srpingmvc+hibernate实现动态ztree生成树状图效果的使用技巧和注意事项,需要的朋友参考一下 ztree生成树状图 ztree官网 前台 导入js和css包 下载地址 前端页面 ztree.jsp 后台 ztree所需实体类 dao接口 dao的实现类 业务接口