【问题标题】:How to switch views from a multiview upon a click of a treeview item?单击树视图项时如何从多视图切换视图?
【发布时间】:2013-12-11 07:46:24
【问题描述】:
我正在尝试在 asp.net 网络表单中创建一个原型,其中单击树视图项会更改多视图中的视图。我已经创建了我需要的所有视图,现在我需要对其进行配置,以便单击树视图项会将多视图更改为相应的视图。
我的树视图有这样的结构:一个项目有 2 个子组件:部件、用户。此外,部件可以有多个子部件。因此,当单击一个项目时,我想加载与项目关联的视图,在本例中,它称为 view1。当点击某个部分时,它应该加载 view2,依此类推。
我最好的猜测是,我可以以某种方式提取所选树视图项的级别(从根开始计数)并从那里加载它的视图。但我该怎么做呢?此外,由于项目有 2 个子组件,每个子组件都有自己的视图,因此树视图项目级别可能不够,因为部件和用户都将处于同一级别。那么我该如何解决呢?
【问题讨论】:
标签:
asp.net
webforms
treeview
multiview
【解决方案1】:
我想通了。
TreeView.SelectedNode.Depth 提供所选节点所在的级别。我以为我必须从选定的节点和类似的东西做一些递归遍历,但看起来它比这简单得多。 =)
我仍然有多个视图对应相同深度的问题。
【解决方案2】:
我是这样做的。
在我的页面上,我有 2 列。左边是treeView1,右边是Multiview1,有几个View。
页面加载设置为 MultiView1.ActiveViewIndex = 0
通过在设计模式下双击TreeView,它会创建Subroutine Handler
Protected Sub TreeView1_SelectedNodeChanged(sender etc etc etc)
结束子
我在子程序中添加了以下代码
If TreeView1.SelectedNode.Value = "treeview 节点的值" Then
MultiView1.ActiveViewIndex = 1
结束如果