2012-02-13 5 views
-1

DBからツリービューを読み込むコードがあります。リーフノードをクリックしたときに問題が発生します。親ノードにいずれか1つが折りたたまれています教えてくださいリーフノードをオープンにする方法を教えてください更新コード この私の完全なコードはwhicを通して、私は私のツリービュー を移植していますTreeViewリーフノードが開いたまま残っていない

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     fill_Tree2() 
    End Sub 
    Private Sub fill_Tree2() 
     Dim PrSet As DataSet = PDataset("Select * from GPS_TREE_PROV") 
     TreeView1.Nodes.Clear() 
     For Each dr As DataRow In PrSet.Tables(0).Rows 
      Dim tnParent As New TreeNode() 
      tnParent.Text = dr("Prov_name").ToString() 
      tnParent.Value = dr("prov_id").ToString() 
      tnParent.PopulateOnDemand = False 
      tnParent.SelectAction = TreeNodeSelectAction.Expand 
      tnParent.Expand() 
      tnParent.Selected = True 
      tnParent.ToolTip = tnParent.Text 
      'tnParent.CollapseAll() 
      TreeView1.Nodes.Add(tnParent) 
      FillChild(tnParent, tnParent.Value) 
     Next 
    End Sub 
    Public Sub FillChild(ByVal parent As TreeNode, ByVal ParentId As String) 
     Dim ds As DataSet = PDataset("Select * from GPS_Tree_STA where Prov_ID =" & ParentId) 
     parent.ChildNodes.Clear() 
     Dim tnParent As New TreeNode() 
     For Each dr As DataRow In ds.Tables(0).Rows 
      Dim child As New TreeNode() 
      child.Text = dr("sta_name").ToString().Trim() 
      child.Value = dr("sta_id").ToString().Trim() 
      'If Not child.ChildNodes.Count = 0 Then 
      ' child.PopulateOnDemand = False 
      'End If 
      child.ToolTip = child.Text 
      'child.SelectAction = TreeNodeSelectAction.Select 
      'child.CollapseAll() 
      'child.Expand() 
      parent.ChildNodes.Add(child) 
      FillChild1(child, child.Value) 
     Next dr 
    End Sub 
    Public Sub FillChild1(ByVal parent1 As TreeNode, ByVal ParentId1 As String) 
     Dim ds As DataSet = PDataset("Select * from GPS_Tree_TEHS where STA_ID =" & ParentId1) 
     parent1.ChildNodes.Clear() 
     For Each dr1 As DataRow In ds.Tables(0).Rows 
      Dim child1 As New TreeNode() 
      child1.Text = dr1("tehs_name").ToString().Trim() 
      child1.Value = dr1("tehs_id").ToString().Trim() 
      'If Not child1.ChildNodes.Count = 0 Then 
      ' child1.PopulateOnDemand = False 
      ' child1.Expand() 
      'End If 
      child1.ToolTip = child1.Text 
      child1.SelectAction = TreeNodeSelectAction.Select 
      child1.Expanded = True 
      parent1.ChildNodes.Add(child1) 
     Next 
    End Sub 
    Protected Function PDataset(ByVal Select_Statement As String) As DataSet 
     Dim SqlCon As New OleDbConnection 
     SqlCon = New OleDbConnection("Data Source=sml; User ID=sml; Password=sml; provider=OraOLEDB.Oracle") 
     Dim da As New OleDbDataAdapter(Select_Statement, SqlCon) 
     Dim ds As New DataSet() 
     da.Fill(ds) 
     Return ds 
    End Function 

それは、このコードを、それをクリックすると、任意の一つは、私が残っオープンとしてリーフノードを設定することができますどのように教えてください

答えて

0

論理、sincを理解するのは難しいですあなたは、イベントに関連するコードを提供しなかった電子が、コードを一目であなたは手順

FillChild1 
+0

からライン

child1.Collapse() 

を削除しようとする必要があり、私は(またchild.Expandを削除)しかし、ツリービューを親ノードに展開し、葉ノード上でdclickを展開すると親ノードに畳まれ、現在開かれている葉がわかります – user1103342

+0

私はもっとコードを見なければならないと思います。あなたはイベントに関連します。 –

+0

私はここにいるだけで、Webコントロールを使用していることに気付いています:)申し訳ありません。 –

関連する問題