Jeg har til opgave at lave en menu med 2 niveauer - der har relationer ved hjælp af parent child i et dataset.
Jeg har forsøgt forskellige måde at løse denne opgave, og er nu i gang med at forsøge mig med AJAX tabs. Menuen med Tabs bliver dannet dynamisk i et usercontrol, som er placeret på min masterPage.
I denne proces er jeg stødt på et problem mht. onclick på tabs. Når jeg navigerer bliver min usercontrol reloaded og derved kan tabs ikke huske ActiveTabIndex.
Jeg havde forestillet mig noget med at gemme ID på den valgte Tab og når siden så reloader, så læses ID'et, men jeg kan ikke få tilføjet et Event der skal ske når man klikker på en ny tab.
Jeg har læst så meget nu at jeg ikke ved hvor jeg skal starte og begynde. Nogle nævner at man skal brug for registerStartupScript, andre siger at man kan hente vha. java: function ActiveTabChanged(sender, e) { var activeTab = $get('<%=activeTab.ClientID%>'); activeTab.value = sender.get_activeTabIndex(); } Men ingen af dele kan jeg finde nogle eksempler der hjælper mig videre - da alt er C#
Nogen der har noget erfaring med AJAX tabs og VB de gerne vil dele ud af?
Dim MyMenuDS As DataSet = GetDataSetForMenu() Dim parentItem As DataRow Dim childItem As DataRow Try TabContainer = New AjaxControlToolkit.TabContainer TabContainer.ID = "MyTabContainer"
For Each parentItem In MyMenuDS.Tables("MenuLow_Tbl").Rows 'If parentItem.GetChildRows("Children").Length = 0 Then TabPanel = New AjaxControlToolkit.TabPanel TabPanel.ID = "TabPanel" & CStr(parentItem("MenuID")) TabPanel.HeaderText = "<a href='" & _ CStr(parentItem("NavigateURL")) & "?Page=" & _ CStr(parentItem("OrderBy")) & "&Sub=0'>" & _ CStr(parentItem("MenuText")) & "</a>" 'Else 'TabPanel = New AjaxControlToolkit.TabPanel 'TabPanel.ID = "TabPanel" & CStr(parentItem("MenuID")) 'TabPanel.HeaderText = CStr(parentItem("MenuText")) 'End If
For Each childItem In parentItem.GetChildRows("Children") Try TabContent = New Label TabContent.ID = "TabContent" & CStr(childItem("SubMenuID")) TabContent.Width = 86 TabContent.CssClass = "MySubMenuItem" 'TabContent.Text = CStr(childItem("SubMenuText")) 'If Left(childItem("NavigateURL"), 8) = "Products" Then 'TabContent.Text = "<a href='" & CStr(childItem("NavigateURL")) & "&Page=" & _ 'CStr(parentItem("OrderBy")) & "&Sub=1'>" & _ 'CStr(childItem("SubMenuText")) & "</a>" 'Else TabContent.Text = "<a href='" & CStr(childItem("NavigateURL")) & "?Page=" & _ CStr(parentItem("OrderBy")) & "&Sub=1'>" & _ CStr(childItem("SubMenuText")) & "</a>" 'End If TabPanel.Controls.Add(TabContent) Catch ex As Exception Response.Write(ex.ToString) End Try Next childItem TabContainer.Tabs.Add(TabPanel) Next parentItem Catch ex As Exception Response.Write(ex.ToString) End Try PHTabs.Controls.Add(TabContainer) End Sub
Private Function GetDataSetForMenu() As DataSet MySQL_Main = "SELECT * FROM MenuLow_Tbl ORDER BY OrderBy;" Dim adMainMenu As New SqlDataAdapter(MySQL_Main, MyConnection)
MySQL_Sub = "SELECT * FROM dbo.MenuLowSub_Tbl ORDER BY OrderBy;" Dim adSubMenu As New SqlDataAdapter(MySQL_Sub, MyConnection)
Dim ds As New DataSet() adMainMenu.Fill(ds, "MenuLow_Tbl") adSubMenu.Fill(ds, "dbo.MenuLowSub_Tbl") ds.Relations.Add("Children", ds.Tables("MenuLow_Tbl").Columns("MenuID"), ds.Tables("dbo.MenuLowSub_Tbl").Columns("MenuID")) Return ds End Function 'GetDataSetForMenu
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.