Avatar billede stinejh1980 Nybegynder
29. juni 2009 - 09:02 Der er 1 kommentar og
1 løsning

AddHandlers på dynamisk Menu

Jeg vil gerne tilføje en onClick event på min Menu, men jeg kan ikke få det til at virke. Jeg får heletiden at vide at:
'OnClick' is not an event of System.Web.UI.WebControls.MenuItem'

Det jeg gerne vil ser nogenlunde sådan ud:

                MainMenuItem = New MenuItem(CStr(parentItem("MenuText")))
                MainMenuItem.Value = CStr(parentItem("MenuID"))
                MainMenuItem.NavigateUrl = CStr(parentItem("NavigateUrl"))
                AddHandler MenuItem.OnClick, AddressOf myMenu_Click
                menu.Items.Add(MainMenuItem)
        MenuPanel.Controls.Add(menu)


    Sub myMenu_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim MenuVisible As Boolean
        If MenuItem.Clicked = True Then ' is it a batten textbox or option checkbox
            MenuVisible = True
        Else
            MenuVisible = False
        End If
    End Sub
Avatar billede stinejh1980 Nybegynder
29. juni 2009 - 11:53 #1
Jeg har nu forsøgt med

    Private Sub PopulateMenu()
        Dim ds As DataSet = GetDataSetForMenu()
        Dim menu As New Menu()
        Dim MainMenuItem As New MenuItem
        Dim SubMenuItem As New MenuItem

        Dim parentItem As DataRow
        Try
            MainMenuItem = New MenuItem("|")
            menu.Items.Add(MainMenuItem)

            For Each parentItem In ds.Tables("MenuMain_Tbl").Rows
                MainMenuItem = New MenuItem(CStr(parentItem("MenuText")))
                'MainMenuItem.Value = CStr(parentItem("MenuID"))
                'MainMenuItem.NavigateUrl = CStr(parentItem("NavigateUrl"))
                menu.Items.Add(MainMenuItem)

                Dim childItem As DataRow
                For Each childItem In parentItem.GetChildRows("Children")
                    SubMenuItem = New MenuItem(CStr(childItem("SubMenuText")))
                    'SubMenuItem.NavigateUrl = CStr(childItem("NavigateUrl"))
                    MainMenuItem.ChildItems.Add(SubMenuItem)
                Next childItem

                MainMenuItem = New MenuItem("|")
                menu.Items.Add(MainMenuItem)
            Next parentItem

            menu.Orientation = Orientation.Horizontal
            '1st level menu styles
            menu.StaticPopOutImageUrl = "gfx/nav_arrow_down_White_red.jpg"
         
            '2nd level menu styles
            menu.DynamicPopOutImageUrl = "gfx/nav_arrow_down_White_red.jpg"
           
        Catch ex As Exception
            LblMessage.Text = ex.ToString
            Response.Write(MySQL)
        End Try

        AddHandler menu.MenuItemClick, AddressOf myMenu_Click
        MenuPanel.Controls.Add(menu)
        MenuPanel.DataBind()
    End Sub 'PopulateMenu

    Private Function GetDataSetForMenu() As DataSet
        MySQL_Main = "SELECT * FROM MenuMain_Tbl order by orderby;"
        Dim adMainMenu As New SqlDataAdapter(MySQL_Main, MyConnection)

        MySQL_Sub = "SELECT * FROM dbo.MenuMainSub_Tbl;"
        Dim adSubMenu As New SqlDataAdapter(MySQL_Sub, MyConnection)

        Dim ds As New DataSet()
        adMainMenu.Fill(ds, "MenuMain_Tbl")
        adSubMenu.Fill(ds, "dbo.MenuMainSub_Tbl")
        ds.Relations.Add("Children", ds.Tables("MenuMain_Tbl").Columns("MenuID"), ds.Tables("dbo.MenuMainSub_Tbl").Columns("MenuID"))
        Return ds
    End Function 'GetDataSetForMenu

    Sub myMenu_Click(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MenuEventArgs)
        Label2.Text = "Menu Click"
    End Sub

Men jeg kan ikke få min applikation til at udføre følgende sætning:
Label2.Text = "Menu Click"

Jeg lavede den så simpel fordi jeg har forsøgt alt muligt andet og intet vil lykkes
Avatar billede stinejh1980 Nybegynder
03. juli 2009 - 09:06 #2
Jeg endte med at ændre Panel til menu for derefter at kunne anvende MenuItemClick i min AsyncPostBackTrigger
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester