Avatar billede simsen Mester
24. januar 2015 - 18:16 Der er 1 løsning

Hvordan tilknyttes dataset til asp:menu?

Hej,

Jeg har ikke været her et par år (sygdom), og nu forsøger jeg at starte lige så langsomt igen.

Jeg har dog brug for at få hjælp til, hvordan jeg får et dataset (hentet fra databasen) ind i selve menu kontrollen?

Jeg har følgende 2 metoder:

private DataSet GetDataSetForMenu()
    {
        Anja.Libriary.AnsiBlog.AnsiBlog_MasterPage.AnsiBlog_Menu menu = new Anja.Libriary.AnsiBlog.AnsiBlog_MasterPage.AnsiBlog_Menu();

        DataTable getData = menu.GetMenu("da-DK", "AnsiBlog");

        DataSet menuDataSet = new DataSet("table");
        menuDataSet.Tables.Add(getData);

        return menuDataSet;
    }
    private void PopulateMenu()
    {
        DataSet ds = GetDataSetForMenu();
        Menu menu = new Menu();

        foreach (DataRow parentItem in ds.Tables["Categories"].Rows)
        {
            MenuItem categoryItem = new MenuItem((string)parentItem["CategoryName"]);
            menu.Items.Add(categoryItem);

            foreach (DataRow childItem in parentItem.GetChildRows("Children"))
            {
                MenuItem childrenItem = new MenuItem((string)childItem["ProductName"]);
                categoryItem.ChildItems.Add(childrenItem);
            }
        }

        //Panel1.Controls.Add(menu);
        //Panel1.DataBind();
    }

GetDataSetForMenu() metoden virker fint - den jeg har brug for hjælp til, er PopulateMenu()

Jeg har følgende udtræk med GetDatasetForMenu():

ID textValue URL Description Rolses ParentId
1052 Forside ~/enellerandenside Beskrivelse null null
1053 Tina  ~/enellerandenside Beskrivelse null 1052
2050 Søren  ~/enellerandenside Beskrivelse null 1053

Altså det der skal ud er følgende:

Forside
Tina
--Søren

Jeg har lavet følgende i min aspx side:

<asp:Menu ID="menuBlog" runat="server"
          DynamicHorizontalOffset="0" StaticSubMenuIndent="0px" StaticDisplayLevels="3" Orientation="Vertical" StaticEnableDefaultPopOutImage="false"
          DynamicEnableDefaultPopOutImage="false" CssClass="menuMain" OnMenuItemDataBound="menuDefault_MenuItemDataBound">
          <DataBindings>
            <asp:MenuItemBinding DataMember="MenuItem"
            NavigateUrlField="NavigateUrl" TextField="textValue" ToolTipField="ToolTip"/>
          </DataBindings>

          <StaticMenuStyle />
          <DynamicMenuStyle CssClass="dynamicMenu" />

          <StaticMenuItemStyle CssClass="menuItemStatic" />
          <DynamicMenuItemStyle CssClass="menuItemDynamic" />
         
          <StaticSelectedStyle />
          <DynamicSelectedStyle />
         
          <StaticHoverStyle CssClass="staticHover" />
          <DynamicHoverStyle CssClass="dynamicHover" />
         
      </asp:Menu>

Jeg håber, I kan se jer ud af det, jeg kan nemlig ikke lige nu.

vh
simsen :-)
Avatar billede simsen Mester
24. januar 2015 - 20:49 #1
Har ændret i databasen (tilføjet ny tabel) og så har jeg lavet det efter denne:

http://www.codeproject.com/Tips/354696/Dynamically-populating-menu-items-from-the-databas

Og det virker :-)
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

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