Jag har försökt kopiera Macces meny till asp.net men får det inte att fungera. Första och andra nivån i menyn fungerar men inte de andra nivåerna.
När man klickar på en länk i nivå två stängs den nivån så att bara nivå ett visas.
Databasen ser ut så här
TabID int primary key
ParentTabID int
TabName nvarchar(50)
Dim intParentID, intGrpId, qstTabID, tabIndex As Integer
Dim strParentID, strClass, strBullet, strPid, qstParentID, scriptname, subLink As String
Dim dtMenu As New DataTable()
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
start()
End If
End Sub
Private Sub start()
qstTabID = Request.QueryString("tabID")
qstParentID = Request.QueryString("parentTabID")
tabIndex = Request.QueryString("tabIndex")
scriptname = "menutest.aspx"
dtMenu = GetMenuItems("SELECT tabID,parentTabID,tabName FROM tabs WHERE TabID > 0 ORDER BY tabOrder ")
Response.Write("<HTML><HEAD><STYLE TYPE=""text/css"">" & vbCrLf)
Response.Write(".catlink {color: #3A3A3A; font-family: verdana,arial; font-size: 10px; text-decoration: none;}" & vbCrLf)
Response.Write(".sublink {color: #3A3A3A; font-family: verdana,arial; font-size: 10px; text-decoration: none;}" & vbCrLf)
Response.Write(".catlinkactive{color: #000000; font-family: verdana,arial; font-size: 10px; text-decoration: none; Font-weight:bold;}" & vbCrLf)
Response.Write(".sublinkactive{color: #000000; font-family: verdana,arial; font-size: 10px; text-decoration: none; Font-weight:bold;}" & vbCrLf)
Response.Write("</STYLE></HEAD><BODY>" & vbCrLf)
Response.Write("<br><br><TABLE border='0' cellspacing='0' cellpadding='1' width='50%' align='center'>")
intGrpId = 15 'qstTabID 'de lnkar som ska vara p niv ett r barn till grupp 1 (allts parent_page_id i databasen r =1)
LinkTree(intGrpId, 0)
Response.Write("</table>")
End Sub
Function LinkTree(ByVal intParent, ByVal intIndent)
Dim X, Z As Integer
For X = 0 To dtMenu.Rows.Count - 1
If dtMenu.Rows(X).Item(1) = intParent And (CStr(dtMenu.Rows(X).Item(1)) = CStr(intGrpId) Or InStr(1, dtMenu.Rows(X).Item(1), qstParentID, CompareMethod.Text) > 0) Then
strPid = ""
Response.Write(vbCrLf & "<TR><TD bgcolor='#ffffff'>")
For Z = 1 To intIndent
Response.Write("<img src='images/1px.gif' width='6' height='8' align='left'>")
Next
If intIndent = 0 Then
subLink = dtMenu.Rows(X).Item(0)
If CStr(qstTabID) = CStr(dtMenu.Rows(X).Item(0)) Then
strClass = "catlinkactive"
strBullet = "<img src='images/icon-active-dot.gif' border=0 align='left'>"
Else
strClass = "catlink"
strBullet = "<img src='images/icon-inactive-dot.gif' border=0 align='left'>"
End If
Else
For Z = 1 To intIndent
strPid = strPid & Split(qstParentID, ",")(Z - 1) & ","
Next
subLink = strPid & dtMenu.Rows(X).Item(0)
If CStr(qstTabID) = CStr(dtMenu.Rows(X).Item(0)) Then
strClass = "sublinkactive"
strBullet = "<b>- </b>" 'kan ven vara bild som ovan
Else
strClass = "sublink"
strBullet = "- "
End If
End If
Response.Write("<a href='menutest.aspx?tabID=" & dtMenu.Rows(X).Item(0) & "&parentTabID=" & subLink & "&tabIndex=" & tabIndex & "' class='" & strClass & "'>" & vbCrLf)
Response.Write(strBullet & dtMenu.Rows(X).Item(2) & "</a></TD></TR>" & vbCrLf)
LinkTree(dtMenu.Rows(X).Item(0), intIndent + 1)
End If
Next
End Function
Private Function GetMenuItems(ByVal sql As String) As DataTable
Dim arrRecords() As String
Dim Connection As New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
Dim dt As New DataTable()
Dim cmd As SqlDataAdapter = New SqlDataAdapter(sql, Connection)
cmd.Fill(dt)
Dim i As Integer
Dim dtc, dtc1, dtc2 As DataColumn
Dim dtr As DataRow
dtc = New DataColumn()
dtc1 = New DataColumn()
dtc2 = New DataColumn()
dtc.ColumnName = "TabID"
dtc1.ColumnName = "ParentTabID"
dtc2.ColumnName = "TabName"
dtMenu.Columns.Add(dtc)
dtMenu.Columns.Add(dtc1)
dtMenu.Columns.Add(dtc2)
For i = 0 To dt.Rows.Count - 1
dtr = dtMenu.NewRow
dtr("tabID") = dt.Rows(i).Item(0)
dtr("ParentTabID") = dt.Rows(i).Item(1)
dtr("tabName") = dt.Rows(i).Item(2)
dtMenu.Rows.Add(dtr)
Next
Connection.Close()
Connection.Dispose()
Return dtMenu
End Function
Någon som kan se några fel på koden?