Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将SQL查询结果格式化为web菜单_Javascript_Asp.net_Css - Fatal编程技术网

Javascript 将SQL查询结果格式化为web菜单

Javascript 将SQL查询结果格式化为web菜单,javascript,asp.net,css,Javascript,Asp.net,Css,我正在尝试为我的网站建立一个向下钻取菜单,用户将点击一个类别,它将显示该点击类别的子类别,可能有n个级别。 我能够编写sql查询,它能准确地返回我想要的输出,但问题是……我不想向最终用户显示整个菜单,我只想打开/扩展单击的类别 my Query output is: 1 IPTV 2 Jadoo Tv 3 Shava Tv 4 Jalva Tv 5 Programming 6 Microsoft 7 Asp.Net 8

我正在尝试为我的网站建立一个向下钻取菜单,用户将点击一个类别,它将显示该点击类别的子类别,可能有n个级别。 我能够编写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&Programming,因为它们是父级,当我单击IPTV时,它应该打开IPTV的子级,就像我说的,可能有n级

我在想,我可以将查询输出加载到网页,然后用css/javascript控制菜单导航


你们有什么想法吗?

好的,这是标记的完整代码(在我从sql sp获得结果之后)

Private子CreateLeftMenu()
Dim dt As DataTable=DAL.ReturnMSSQLSDATA(“EXEc类别树”)
Dim str作为新的StringBuilder
Dim catname As String=“”
将catid设置为整数=0
将父项设置为整数=0
Dim sort As String=“”
将按键设置为数组
Dim显示为String=“无”
对于每个项目,作为dt.行中的DataRow
catname=替换(项目(“catname”)、“”、“”)
catid=项目(“id”)
父项=项目(“父项”)
排序=项目(“排序”)
如果parent=0,则
str.Append(“”)
其他的
如果Len(Me.GroupID)>0,那么
keys=Split(Me.GroupID,“\”)
对于每个项,1作为键中的字符串
如果CInt(item1)=父项,则
str.Append(“”)
其他的
'str.Append(“”)
如果结束
下一个
如果结束
如果结束
下一个
LMenu.Text=str.ToString
端接头

如果您有代码的话,可以添加代码吗?我正在想办法写代码。到目前为止,我认为我只需将菜单加载到网页,并将CSS设置为所有子类别显示为“无”,然后对于每个类别,我将传递类别树作为GET参数。例如,对于Asp.net,我将通过2,3,4(2=编程,3=Microsoft,4=Asp.net),然后使用代码,我将仅将这些子类别设置为显示和隐藏。你觉得这个方法怎么样?是的,可能是个好方法。让SQL查询返回一个菜单项数组,然后循环出这些项并为每个项添加一个类或id,然后使用CSS或CSS和JS的组合来控制视图。我返回的行如您在我的代码示例中看到的,左边填充了正确数量的空格。然后在网页上显示它们(因为CTE查询进行了排序和格式化)。你需要一些标记来使用CSS和/或JS。。。
    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