0

ユーザーがカテゴリをクリックすると、そのクリックされたカテゴリのサブカテゴリが表示される、自分の Web サイトのドリルダウン メニューを構築しようとしています。出力を正確に返す SQL クエリを記述できますが、問題は... メニュー全体をエンド ユーザーに表示したくないため、クリックしたカテゴリのみを開いて展開したいと考えています。

    my Query output is:

1 IPTV
2      Jadoo Tv
3      Shava Tv
4      Jalva Tv
5 Programming
6      Microsoft
7           Asp.Net
8      PHP

したがって、デフォルトでは IPTV とプログラミングが表示されます。これらは親であるためです。IPTV をクリックすると、n レベルが存在する可能性があると述べたように、IPTV の子が開きます。

私は、クエリの出力を Web ページにロードし、css/javascript でメニュー ナビゲーションを制御できると考えていました。

何かアイデアはありますか?

4

1 に答える 1

0

わかりました、ここにマークアップの完全なコードがあります(SQL SPから結果を取得した後)。

    Private Sub CreateLeftMenu()

    Dim dt As DataTable = DAL.ReturnMSSQLData("EXEc CategoryTree")
    Dim str As New StringBuilder

    Dim catname As String = ""
    Dim catid As Integer = 0
    Dim parent As Integer = 0
    Dim sort As String = ""
    Dim keys As Array

    Dim display As String = "none"

    For Each item As DataRow In dt.Rows

        catname = Replace(item("CatName"), " ", " ")
        catid = item("id")
        parent = item("parent")
        sort = item("sort")

        If parent = 0 Then
            str.Append("<div class='group_" & parent & "'><a href='/pages/index.aspx?cat=" & sort & "' id='group_" & catid & "'>" & catname & "</a></div>")
        Else

            If Len(Me.GroupID) > 0 Then
                keys = Split(Me.GroupID, "_")

                For Each item1 As String In keys
                    If CInt(item1) = parent Then
                        str.Append("<div class='group_" & parent & "' style='display:block'><a style='text-decoration:none' href='/pages/index.aspx?cat=" & sort & "' id='group_" & catid & "'>" & catname & "</a></div>")
                    Else
                        'str.Append("<div class='group_" & parent & "' style='display:none'><a style='text-decoration:none' href='/pages/index.aspx?cat=" & sort & "' id='group_" & catid & "'>" & catname & "</a></div>")
                    End If
                Next

            End If



        End If

    Next

    LMenu.Text = str.ToString

End Sub
于 2012-09-07T21:36:22.280 に答える