de code in deze post is in asp3 geschreven, omdat ik hier geen .net tot mijn beschikking heb, en zo goed ben ik nog niet
dat ik het uit mijn hoofd kan
Ik probeer een Menu op te bouwen op basis van gegevens uit een database.
DB model (versimpeld)
Het opbouwen van het menu moet (zoals zovaak) recursief gebeuren.
Dit heeft in mijn geval als resultaat:
Zoals je ziet horen Sub-Menu 1 en Sub-Menu 2 bij MainMenu 2. Sub-Menu a en Sub-Menu b horen vervolgens weer bij Sub-Menu 2. Je zou zeggen dat het werkt. Maar het enige waar ik nog niet uitkom is om de SubMenu's een klein stukje in te laten springen.
Middels google en de GoT search heb ik wel een aantal artikelen gevonden waaronder:
Sitepoint, dit topic en nog vele andere waar imho de materie hetzelfde is. De materie van een recursieve functie is me wel redelijk duidelijk inmiddels, alleen ik zou op dit moment niet weten hoe ik bijvoorbeeld het inspringen e.d. kan doen.
Het uiteindelijke doel is om dit te produceren:
Verder baseer ik me nu even op mijn ASP3 kennis. Mocht er in .Net 1.1 een veel betere "way to go" zijn, dan hoor ik dat erg graag.
Ik probeer een Menu op te bouwen op basis van gegevens uit een database.
DB model (versimpeld)
code:
1
2
3
| PageId (int) ParentId(int) PageTitle(nvarchar) |
Het opbouwen van het menu moet (zoals zovaak) recursief gebeuren.
ASP:
1
2
3
4
5
6
7
8
9
| function menu(id) do while not rs.eof ' code hieronder als een soort van debug :) strItem = strItem & rs("PageRewrite")&vbTab&"Pageid:"&rs("PageID")&vbTab&"ParentId:"&id&"<br>"&vbcrlf strItem = strItem & menu(rs("PageId")) ' voer de functie "menu" nogmaals uit rs.movenext() loop menu = strItem end function |
Dit heeft in mijn geval als resultaat:
code:
1
2
3
4
5
6
7
8
| Pageid ParentId PageTitle 1 0 MainMenu 1 2 0 MainMenu 2 4 2 Sub-Menu 1 5 2 Sub-Menu 2 6 5 Sub-Menu a 7 5 Sub-Menu b 3 0 MainMenu 3 |
Zoals je ziet horen Sub-Menu 1 en Sub-Menu 2 bij MainMenu 2. Sub-Menu a en Sub-Menu b horen vervolgens weer bij Sub-Menu 2. Je zou zeggen dat het werkt. Maar het enige waar ik nog niet uitkom is om de SubMenu's een klein stukje in te laten springen.
Middels google en de GoT search heb ik wel een aantal artikelen gevonden waaronder:
Sitepoint, dit topic en nog vele andere waar imho de materie hetzelfde is. De materie van een recursieve functie is me wel redelijk duidelijk inmiddels, alleen ik zou op dit moment niet weten hoe ik bijvoorbeeld het inspringen e.d. kan doen.
Het uiteindelijke doel is om dit te produceren:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <ul> <li>Main Menu 1</li> <li>Main Menu 2 <ul> <li>SubMenu 1<li> <li>SubMenu 2 <ul> <li>Sub-Menu a</li> <li>Sub-Menu b</li> </ul> <li> </ul> </li> <li>Main Menu 3</li> </ul> |
Verder baseer ik me nu even op mijn ASP3 kennis. Mocht er in .Net 1.1 een veel betere "way to go" zijn, dan hoor ik dat erg graag.
Heart..pumps blood.Has nothing to do with emotion! Bored