2

dataTableからツリービューにノードを追加しようとしています。私の問題はノードの追加ではありませんが、ノードを表示しています。私のループは通過し、すべてのノードを追加します。合計ノードを正しく表示するテキストボックスがあります。ただし、ツリービューには何も表示されません。いくつかの表示プロパティがありませんか?

ご協力ありがとうございました!

    oldComments.DataBind()
    Dim count As Integer = 0
    Dim TreeView1 As TreeView = New TreeView
    ' TreeView1.FindNode("My Node").ChildNodes().Add(New TreeNode("Test This"))
    For Each row As DataRow In dsData.Rows
        Dim node As TreeNode = New TreeNode(row("UpdateTimeStamp").ToString)

        Dim node2 As TreeNode = New TreeNode((count.ToString + " - Count"), "test")
        TreeView1.Nodes.Add(node2)
        TreeView1.Nodes.Add(node)
        TreeView1.Nodes(0).ChildNodes().Add(node)
    Next
    TreeView1.ExpandAll()
    status.Text = TreeView1.Nodes.Count

次にASP:

    <asp:TreeView ID="TreeView1" runat="server">
        <Nodes>
            <asp:TreeNode Text="My Node" Value="My Node"></asp:TreeNode>
        </Nodes>
    </asp:TreeView>

表示されている場所を確認するために1つのノードを追加しました/検索コントロールを使用して新しい子ノードを追加しようとしましたが、機能しませんでした。提案?

ありがとうございました。

4

2 に答える 2

2

同じノードを 2 回割り当てています。ツリービュー ノードに 1 回、別のノードの子ノードに 1 回。ノードに子を追加する場合は、ノードをツリービュー自体に割り当てる必要はありません。コードを次のように変更します

TreeView1.Nodes.Add(node2)
node2.ChildNodes().Add(node)
于 2012-08-14T15:45:56.550 に答える
1

問題は、すべてのノードを間違ったに追加していることだと思いますTreeView

TreeViewマークアップで「TreeView1」として既に宣言しています。したがって、この行:

Dim TreeView1 As TreeView = New TreeView

削除する必要があり、残りのコードは引き続き正常に機能するはずです。

TreeViewこれは、あなたが「トップレベル」のページに直接あり、ある種のコンテナ(のような)ではないことを前提としていますUpdatePanelその場合は、最初に を使用FindControlして を取得する必要がありますTreeView

したがって、上記の行を削除するのではなく、次のように置き換えます。

Dim TreeView1 As TreeView = someContainer.FindControl("TreeView1")

また、そのコードはおそらくコード ビハインドのセクションで実行する必要がPage_Loadあります (まだ実行されていない場合)。しかし、それが問題だとは思いません。

于 2012-08-14T15:45:45.740 に答える