ParentMnuItemId menar att det är en submeny till något annat MenuItem, vad jag vill hämta ut är följande, låt oss säga att jag ska hämta ut menyn med Pk_MenuId = 1. Då vill jag först hämta ut alla menuItem som hör till den menyn, har de något annat än 0 i ParentMnuItemId ska den skrivas ut under det menuItem som det hör till.
SELECT Menu.MenuTitle,Menu.MenuDescription, Menu.Pk_MenuId, MenuItems.Pk_MenuItemId, MenuItems.ParentMenuItemId, MenuItems.NavigateUrl,
MenuItems.NavigateText FROM MenuItems INNER JOIN Menu ON MenuItems.Fk_MenuId = Menu.Pk_MenuId
ORDER BY NavigateText
Misstänker att jag måste använda mig av någon sorts case, men hur? Tacksam
Skall menyn begränsa sig till två nivåer? Isåfall räcker det med en SELECT och en rekursiv INNER JOIN (?), plus lite kontroller i koden, så har du din meny.
Tack jajjdan men... Vet ännu inte om den kommer att begränsa sig till två nivåer, men jag antar det. Jag vet att det går att få ut med ren sql utan kontroller i koden det är det jag är ute efter
Jag vet att det går att få ut med ren sql utan kontroller i koden det är det jag är ute efter
Nja, hur då? Alla menyalternativ blir ju likadana precis hur du än gör. Du måste väl skilja på dem i koden genom att kontrollera deras parentid, annars vet du ju inte vilka som är subalternativ eller inte?
Ja i gränssnittet måste jag kontrollera om det är en menyitem till ett menyitem så att säga, men vad jag vill få ut är ju dem i rätt ordning
exempelvis
MenyItem1
MenyItem2
MenyItem3, sub till MenyItem2
MenyItem4, sub till MenyItem2
MenyItem5
MenyItem6
MenyItem7, sub till MenyItem6
MenyItem8, sub till MenyItem6
Där först alla MenyItem sorteras på NavigateText och sen sorteras alla sub på NavigateText
sqlQuery = "SELECT Pk_MenuItemId, Fk_MenuId, NavigateUrl, NavigateText, ParentMenuItemId FROM PageMenuItems WHERE Fk_MenuId = @menuId order by case when ParentMenuItemId = 0 then Pk_MenuItemId else ParentMenuItemId end,NavigateText ,ParentMenuItemId";
266 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91