【问题标题】:ASP.Net Treeview check node existsASP.Net Treeview 检查节点是否存在
【发布时间】:2015-11-20 00:54:38
【问题描述】:

我正在使用 ASP.Net Treeview,我需要在添加新节点之前检查节点是否存在,这样我就没有重复(这是我目前得到的,因为数据。

我已经尝试过TreeView1.FindNode(newNode.Text),如果节点存在,它确实会给我一个值,但是当尝试在其上运行 if 语句以检查它不是什么,或者它是否存在时,Visual Studio 给我一个错误,建议不能将字符串转换为布尔值。

尝试时

If Convert.ToBoolean(TreeView1.FindNode(node.Id)) = Nothing Then
                exists = False
            Else
                exists = True
End If

即使它不是什么,它也总是返回 false

尝试时

If TreeView1.FindNode(node.Id) = Nothing Then
                exists = False
            Else
                exists = True
End If`

这是我得到错误的地方。

我们将不胜感激任何和所有的帮助。

谢谢

【问题讨论】:

标签: asp.net .net vb.net treeview


【解决方案1】:

问题是TreeView1.FindNode 返回TreeNode,而您正试图将其转换为永远不会工作的布尔值。这应该有效:-

If TreeView1.FindNode(node.Id) Is Nothing Then
      exists = False
Else
      exists = True
End If

更新:

您还可以使用一点 LINQ 来查找存在。我个人喜欢这种方法:-

Dim exist As Boolean = TreeView1.Nodes.OfType(Of TreeNode)() _
                                      .Any(Function(x) x.Value = node.Id)

【讨论】:

  • 我在看到你的回答之前就意识到了这一点......任何人都可以随意标记我的愚蠢
  • @SimonPrice - 嘿,这并不愚蠢,这些事情发生在编码世界:) 我添加了另一种方法,我们可以通过它找到树节点的存在。
  • 谢谢,我可以通过最初的尝试找到父节点,但我现在无法找到特定的子节点,所以希望这段新代码也能帮助我。
猜你喜欢
  • 2011-08-31
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
  • 2017-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-16
相关资源
最近更新 更多