TreeView控件用于显示分层信息。
在 tkinter 中过滤基于 pandas 数据框的树视图,无法按预期工作
所以,这是我的问题: 我用股票数据 dfAcciones 构建了一个数据框。将数据添加到名为 tabla 的树视图变量中: 为了做到这一点,我有一个清理数据框的函数和一个......
如何在 WPF 的 TreeView 中显示对象的两个或多个属性,其中只有一个是层次项?
我有一个可观察的嵌套对象集合,正在 WPF 的 TreeView 中显示。 公共类嵌套容器 { 公共 FXR1.FXContainer myContainer { 获取;放; } 公共字符串...
我正在尝试仅使用 QML 创建一个非常简单的 TreeView。遗憾的是,该领域的文档/示例非常薄弱。我尝试构建一个简单的树,如下所示。我的代码失败了...
建议以可变深度的 json 格式存储和处理数据以用于组织结构图表示
我有 json 格式的对象依赖关系的分层谱系。 json 本身的结构非常简单,但深度可变。我附上了一张图片来显示树结构。 ...
使用treeview.SelectedNode选择子节点。以编程方式选择节点时如何调用 treeview.AfterSelect 事件? this.treeView1.SelectedNode = this.treeView1.Nodes[0].Nodes[0]...
在显示ContextMenu之前右键单击选择TreeView节点
我想在显示上下文菜单之前右键单击选择一个 WPF TreeView 节点。 对于 WinForms,我可以使用这样的代码:在上下文菜单下单击“查找”节点,什么是 WPF
Tkinter Treeview 似乎不支持默认列#0 的图像对齐,当然我已经测试了它有效的一些文本,但图像。我尝试过各种对齐方法,甚至当...
TreeView 根据子项选择父复选框 - WPF MVVM
我是 WPF 新手。我找到了一些示例,并在 C# WPF Mvvm 中整理了一个树视图示例。我根据父母的选择选中或取消选中孩子的复选框。我不知道如何加入...
我正在尝试使用 WPF 树视图实现非常具体的外观。 给定这样的结构: H: └── 节目 └── 启动 ├── foo.txt ├── 栏.txt └── 啊啊啊 └── b...
如何删除小部件 Tkinter Treeview 上留下的缩进?
我可以以某种方式删除这个缩进吗?我知道我可以删除第一列,但随后我无法插入图像。 将 tkinter 导入为 tk 将 tkinter.ttk 导入为 ttk 从 PIL 导入图像、ImageTk ...
我正在使用具有 DrawMode 的树视图(Windows 窗体):TreeViewDrawMode.OwnerDrawText。但我在渲染内容时遇到问题。在树视图完全初始化之前,树视图节点...
我在 tkinter 中有以下树视图: #设计下面的树视图 样式 = ttk.Style() 样式.theme_use("alt") style.configure("树形视图", 背景=“银色”,
我有一个有四个层次结构的树视图。当单击某个树节点时,相关数据将加载到列表视图中。 单击某些树节点后,我遇到了一些随机 n 的问题...
我的表有父行和子行 当我选择子行并删除子项时 之后表切换并聚焦于父行 我的问题是如何专注于儿童排 重新...
如何创建包含文本和图像的 Python GTK3 TreeView 列
我有一个带有 TreeView 的 GTK3 Python 程序,我想要一个主要包含文本的列,但也可以包含图像。我一直在询问 ChatGPT,但这是我能得到的最接近的结果:
为什么我的树视图没有显示在 Repl.it (Python) 上的 GUI 中
任何人都可以明白为什么当我在 repl.it 中运行我的应用程序时,我的树视图没有显示在我的应用程序上。 GUI 显示第一帧。但我无法获取树视图的框架或要显示的实际树视图数据。 ...
我们有一个 N 层(最多可能在 10 左右)嵌套数据结构,基本上类似于文件夹布局.. 任何级别的每个节点都是要显示的 Mime 类型或 URL .. 我的
我有一棵代表Excel函数的树,其中节点包含名称:函数名称(例如SUM);类型:函数类型(函数或数字);参数:函数_参数。整个专业...
我正在尝试使用 c# 和 asp.net 动态创建树视图。 我使用 populate ondemand 属性创建了一个延迟加载树视图。 > 我正在尝试使用 c# 和 asp.net 动态创建树视图。 我使用 populate ondemand 属性创建了一个延迟加载树视图。 > <asp:TreeView ID="treeView1" runat="server" > OnTreeNodePopulate="treeview1_TreeNodePopulate"></asp:TreeView> 在代码后面,我已经加载了数据,但最初我填充了父节点。我想要实现的是,当我单击父节点时,我会进行回发,然后填充其子节点,然后再次填充其子节点,等等。我有数千个数据,因此由于性能原因,我不希望填充所有数据。这就是为什么我只想根据所选节点填充节点子节点的原因。请参阅下面的示例: >Peter - - >user1 - - >user2 - - >user3 - - >userPassword - - >userId >john >david >Jack - - >user1 - - >user2 - - >userpassword - - >userId - - >Permissions >Laura - - > admin - - > permissions -- > user1 -- > user2 - - >userpassword - - >userId - - >Permissions >... >... >... 如您所见,可以有多个父节点和多个层。这些将根据我传递给数据库的内容动态填充。每次我单击节点时,它都会展开节点并使用回发填充其子级,然后当您再次单击其子级时,它将执行回发并再次填充其子级等。所以我需要有关如何创建动态树视图的帮助。 c#: private void LoadTreeview() { //Load data // Get data from DB. //loop through the list and build its parent nodes. foreach (var dxm in list) { TreeNode tnParent = CheckNodeExist(dxm.Node); //I check to see if exists. if (tnParent== null) { TreeNode tn = new TreeNode(); tn.Text = dxm.Node; tn.Value = dxm.Id.ToString(); tn.SelectAction = TreeNodeSelectAction.None; tn.Collapse(); treeView1.Nodes.Add(tn); tn.PopulateOnDemand = true; //lazy load tnParent= tn; } } 上面的方法在页面加载时调用。 在 TreeNodePopulateEvent 上:(单击节点时) protected void treeview1_TreeNodePopulate(object sender, TreeNodeEventArgs e) { ICollection<ITEMS> list = new Collection<ITEMS>(); list = GetData(e.Node.Text); //pass in the node you have selected this will go and check in DB if the node does have any child nodes. If so will return with child nodes. foreach (var dxm in list) { TreeNode tnChild = CheckNodeExist(dxm.Node); if (tnChild == null) { TreeNode tn = new TreeNode(); tn.Text = dxm.Node; tn.Value = dxm.Id.ToString(); tn.SelectAction = TreeNodeSelectAction.None; tn.Collapse(); tn.PopulateOnDemand = true; tnChild = tn; tnChild.ChildNodes.Add(tnChild); } } } 我相信您正在寻找 SelectedNodeChanged 事件。您应该能够在此事件中加载您的子节点。基本上,每次您通过单击选择一个节点时都会触发此事件。 你的aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div id="div1" runat="server"> </div> <asp:TreeView ID="TreeView1" runat="server" onselectednodechanged="TreeView1_SelectedNodeChanged"> </asp:TreeView> </form> </body> </html> 你的代码隐藏 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { TreeView1.Nodes.Add(new TreeNode("Node1")); TreeView1.Nodes[0].ChildNodes.Add(new TreeNode("ChildNode")); } } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { Response.Write(TreeView1.SelectedNode.Text); } } 也许这个例子会对你有所帮助,我正在使用 baisc 递归在 .NET core mvc 中创建类似用户树的结构。 这里我使用sql server来存储用户数据,每个节点/用户都由用户名标识。每个节点都是个体用户。登录用户将显示在顶部,子用户将显示在底部,形成一个具有 leftMember/leftNode 和 rightMember/rightNode 的树状结构。 模型类: public class UserModel { [Key] public int userId { get; set; } [Required] public string firstName { get; set; } [Required] public string lastName { get; set; } [Required] public string userName { get; set; } [Required] public string password { get; set; } public string leftMember { get; set; } = ""; public string rightMember { get; set; } = ""; } 用户登录验证: [HttpPost] public async Task<IActionResult> Auth(string username, string password) { var findingFeni = context.User.Where(n => n.userName == username && n.password == password).FirstOrDefault(); if(findingFeni == null) { return Content("user or password is incorrect"); } var claims = new List<Claim> { new Claim(ClaimTypes.Name, username) }; var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); var authProperties = new AuthenticationProperties { }; await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), authProperties); return RedirectToAction("Index"); } 添加左右成员/节点: public async Task<IActionResult> addMyLeftMember(int userId) { TempData["LeftMemberUserId"] = userId; return RedirectToAction("RegisterLeftMember"); } public async Task<IActionResult> addMyRightMember(int userId) { TempData["RightMemberUserId"] = userId; return RedirectToAction("RegisterRightMember"); } public async Task<IActionResult> AddMemberLeft(UserModel userModel) { UserModel usr = context.User.Where(n => n.userName == userModel.userName).FirstOrDefault(); if(usr != null) { return Content("user already exist"); } int userID = int.Parse(TempData["LeftMemberUserId"].ToString()); var findingDaddy = context.User.Where(n => n.userId == userID).FirstOrDefault(); findingDaddy.leftMember = userModel.userName; context.User.Add(userModel); await context.SaveChangesAsync(); return RedirectToAction("Index"); } public async Task<IActionResult> AddMemberRight(UserModel userModel) { UserModel usr = context.User.Where(n => n.userName == userModel.userName).FirstOrDefault(); if (usr != null) { return Content("user already exist"); } int userID = int.Parse(TempData["RightMemberUserId"].ToString()); var findingDaddy = context.User.Where(n => n.userId == userID).FirstOrDefault(); findingDaddy.rightMember = userModel.userName; context.User.Add(userModel); await context.SaveChangesAsync(); return RedirectToAction("Index"); } 在索引中获取用户数据我正在获取所有用户数据,但您只能获取将完成工作的登录用户数据。 public IActionResult Index() { List<UserModel> users = context.User.ToList(); string name = User.Identity.Name; if(name == null || name.Equals("")) { name = "admin"; } List<UserModel> newUserList = users.Where(user => String.Compare(user.userName, User.Identity.Name) >= 0).ToList(); return View(newUserList); } 索引页: @inject TASK_1._1.Context.ApplicationDbContext context @model List<UserModel> @{ ViewData["Title"] = "Home Page"; } <div class="text-center"> @if (Model != null && Model.Count() > 0) { <table border="1" class="text-center"> @foreach (var user in Model) { @Html.Partial("_UserNodeView", user) break; } </table> } </div> 查看: @inject TASK_1._1.Context.ApplicationDbContext context @model UserModel @* *@ @{ } <table border="1" class="text-center"> <a> @Model.userName </a> <tr> <td> @if (Model.leftMember.Equals("")) { <div> <form asp-controller="Home" asp-action="AddMyLeftMember" method="post"> <button class="btn btn-primary" type="submit" asp-action="AddMyLeftMember" asp-route-userId="@Model.userId"> Left </button> </form> </div> } else { var u = context.User.Where(n => n.userName == Model.leftMember).FirstOrDefault(); @Html.Partial("_UserNodeView", u) } </td> <td> @if (Model.rightMember.Equals("")) { <div> <form asp-controller="Home" asp-action="AddMyRightMember" method="post"> <button class="btn btn-primary" type="submit" asp-action="AddMyRightMember" asp-route-userId="@Model.userId"> Right </button> </form> </div> } else { var u = context.User.Where(n => n.userName == Model.rightMember).FirstOrDefault(); @Html.Partial("_UserNodeView", u) } </td> </tr> </table>
如何在初始渲染时自动扩展 d3-org-chart 中的特定级别?
我正在使用 d3-org-chart 库创建组织结构图,我遇到了一个问题,我想自动扩展根级别和接下来的两个级别(级别 0、1、...