[ASP.net/VB.net] Usercontrol met Children

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 19-09 08:07
Ik probeer een menu te maken op de volgende manier

code:
1
2
3
4
5
6
7
8
9
<uc:menu id="menu" runat="server">
     <uc:menuitem id="menuitem1" link="links.aspx" text="links">
          <uc:menuitem id="menuitem2" link="http://www.google.be" text="google" />
          <uc:menuitem id="menuitem3" link="http://www.tweakers.net" text="tweakers" />
     </uc:menuitem>
     <uc:menuitem id="menuitem4" link="blabla.aspx" text="blabla">
          <uc:menuitem id="menuitem5" link="testlink.aspx" text="testlink" />
     </uc:menuitem>
</menu>


Nu hoe ik een usercontrol moet aanmaken en weergeven weet ik wel maar ik weet niet hoe ik kan werken met die child elementen.

Acties:
  • 0 Henk 'm!

  • 418O2
  • Registratie: November 2001
  • Laatst online: 15:40
je UC een set van children meegeven en hem dan zichzelf opnieuw laten renderen adhv die children.

afhankelijk van de opbouw van entiteiten kan je dan oneindig diep.

(ik redeneer vanuit asp.net)

Acties:
  • 0 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 19-09 08:07
En hoe kan je je UC een set van children meegeven?

Heeft deze manier een naam want het probleem is ook dat ik niet weet hoe ik dit moet opzoeken in google.

Acties:
  • 0 Henk 'm!

  • L-VIS
  • Registratie: April 2005
  • Laatst online: 14:12
Hands-on ervaring heb ik er niet mee maar het is blijven hangen van een examen. Volgens mij moet je hier wel een eind mee komen:
http://msdn.microsoft.com...tem.web.ui.itemplate.aspx

Acties:
  • 0 Henk 'm!

  • 418O2
  • Registratie: November 2001
  • Laatst online: 15:40
je kan hem dynamisch instantieren toch? Een usercontrol kan je gewoon toevoegen aan een element in je view, dus als je bijvoorbeeld.

C#:
1
2
3
MenuItem mi = new Menuitem();
mi.Datasource = myDataset.Children;
this.pnlPlaceholder.controls.Add(mi);


doet, heb je dynamisch een control aangemaakt.

Acties:
  • 0 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 19-09 08:07
Het punt is niet zozeer van die control dynamisch te maken maar hoe ik die children elementen opvang om de user control uit te renderen

Acties:
  • 0 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 19-09 08:07
Ik zal mij mss even verduidelijken.
Ik wil zoiets maken zoals een sqldatasource. Hier kun je selectparameters, .... aan meegeven.
Dit doe je op de volgende manier:

code:
1
2
3
4
5
6
7
8
9
10
    <asp:SqlDataSource 
        ID                  = "sdsID" 
        runat               = "server"
        SelectCommand       = "sp_select"
        SelectCommandType   = "StoredProcedure"
    >
        <SelectParameters>
            <asp:SessionParameter Name="Stud_ID" SessionField="loginid" Type="Int32" />
        </SelectParameters>
    </asp:SqlDataSource>


Nu wilde ik dit vertalen in een menu Hoe ik de user control (asp:SqlDataSource in dit voorbeeld) maak weet ik -> menu.ascx aanmaken.
Maar hoe ik dan de asp:SessionParameter kan uitlezen binnen menu.ascx dat weet ik niet.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • reddog33hummer
  • Registratie: Oktober 2001
  • Laatst online: 03-08 23:13

reddog33hummer

Dat schept mogelijkheden

uc:menu...
Ben je niet niet gewoon een menu control van asp.net aan het nabouwen ?
http://msdn.microsoft.com/en-us/library/ecs0x9w5(VS.80).aspx.

Backup not found (R)etry (A)bort (P)anic<br\>AMD 3400+ 64, 2 GB DDR, 1,5 TB Raid5


Acties:
  • 0 Henk 'm!

  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 13:23
@reddog Het gaat toch om het principe...

Het zijn inderdaad Templated containers. Met de link van Woy moet je een heel end komen. Heb ik volgens mij zelf ook ooit gebruikt voor dit onderwerp.

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
creator1988 schreef op maandag 29 juni 2009 @ 21:54:
Het gaat toch om het principe...
Als dit code is die niet ergens in productie genomen wordt, maar alleen voor educatieve doeleinden in elkaar geknutseld wordt: akkoord. Anders zou ik niet functionaliteit uit de standard libraries na gaan zitten bouwen. Dat is niet alleen verspilde tijd maar levert je ook weer kopzorgen mbt maintenance.

Acties:
  • 0 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 19-09 08:07
Inderdaad die functionaliteit wilde ik namaken omdat ik niet de volledige controle heb over die menu control.

[ Voor 3% gewijzigd door Yoki1985 op 30-06-2009 10:08 ]


Acties:
  • 0 Henk 'm!

  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 13:23
Er zijn genoeg redenen om functionaliteit (enigszins) na te maken. De standaard framework controls zijn niet heilig. Sterker nog, op de tekstvelden, (link)buttons en af en toe een panel of placeholder, gebruiken wij hier alleen maar zelfgeschreven custom controls.

Acties:
  • 0 Henk 'm!

  • 418O2
  • Registratie: November 2001
  • Laatst online: 15:40
creator1988 schreef op dinsdag 30 juni 2009 @ 11:07:
Er zijn genoeg redenen om functionaliteit (enigszins) na te maken. De standaard framework controls zijn niet heilig. Sterker nog, op de tekstvelden, (link)buttons en af en toe een panel of placeholder, gebruiken wij hier alleen maar zelfgeschreven custom controls.
Hier ook. Je loopt toch vaak tegen limieten aan. Niet alleen functioneel, maar ook stylingswise.

Acties:
  • 0 Henk 'm!

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 19-09 08:07
Inderdaad het is vooral stylingswise dat ik deze control wilde namaken.
Moet dit nu gebeuren met zo een templated control? of gebeurd dit no op een andere manier?

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
418O2 schreef op dinsdag 30 juni 2009 @ 11:33:
[...]

Hier ook. Je loopt toch vaak tegen limieten aan. Niet alleen functioneel, maar ook stylingswise.
Als je tegen styling limieten aan gaat lopen heb je ook altijd nog control adapters. Heb je functioneel wat meer nodig, dan kun je inderdaad vaak niet anders dan helemaal zelf iets bouwen. Afleiden van een bestaande control werkt vaak niet lekker omdat een heleboel dependencies van de standaad controls allemaal sealed zijn terwijl de aspx markup view in de visual studio IDE problemen heeft met tag completion met classes waarbij de (afgeleide) parent control in een andere namespace dan de children zit...

Maar ook dan moet je oppassen dat je niet bezig gaat om een 'golden hammer' te maken. Helemaal voor zoiets triviaals als een menu is het dan beter om gewoon een repeater te gebruiken. Enige argument om voor dat soort simpele dingen een custom control te maken is als je kneuzen in dienst hebt die geen letter code kunnen tikken maar alles moeten 'sleur & pleur'-en. Beter is dan om in je bedrijf een cookbook aan standaard recepten te hebben.
Pagina: 1