Javascript 将SQL查询结果格式化为web菜单
我正在尝试为我的网站建立一个向下钻取菜单,用户将点击一个类别,它将显示该点击类别的子类别,可能有n个级别。 我能够编写sql查询,它能准确地返回我想要的输出,但问题是……我不想向最终用户显示整个菜单,我只想打开/扩展单击的类别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
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