Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[asp.net] Controls op twee plekken

Pagina: 1
Acties:

  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08 14:04
Hallo,

In een project waaraan ik nu werk heb ik iets dat ik beter wil maken (met het oog op later).
We hebben zeg maar een control die speciale buttons bevat. Deze moet zowel boven als onderin de pagina weergegeven worden. Het liefst zou ik dit vanuit "object" doen ipv ze beide aan te spreken los van elkaar en dubbel de toevoegingen doen.

Een voorbeeld om het misschien duidelijker te maken:

(nu)
code:
1
2
3
4
5
6
7
8
9
10
ContainerTop.addButton(IndexButton);
ContainerTop.addButton(PostButton);

ContainerBottom.addButton(IndexButton);
ContainerBottom.addButton(PostButton);

// verderop

ContainerTop.eenFunctie();
ContainerBottom.eenFunctie();


naar (ik weet dus niet OF het wel kan :P maar daarvoor ben ik hier)
code:
1
2
3
4
5
6
ContainerManager.addButton(IndexButton);
ContainerManager.addButton(PostButton);

// verderop

ContainerManager.eenFunctie();


Alvast bedankt voor het meedenken!

  • Razr
  • Registratie: September 2005
  • Niet online
Hier zul je (excuse me if i'm wrong) zelf een functie voor moeten gaan schrijven. Je zou bijvoorbeeld zelf een functie kunnen schrijven welke automatisch het mee te geven control (als bijv. een parameter) zowel onder als bovenaan de pagina in de Container stopt.

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 10-11 17:17
Ik snap je probleem niet. Je kunt niet hetzelfde object gebruiken om iets 2 keer te renderen. 1 WebControls heeft 1 render moment. Het enige wat ik me voor kan stellen is dat je het object cloned.

Kun je wat voorbeelden geven hoe je het praktisch gaat toepassen en hoe de structuur van je code is?

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Verwijderd

Alex schreef op woensdag 16 januari 2008 @ 08:28:
Ik snap je probleem niet. Je kunt niet hetzelfde object gebruiken om iets 2 keer te renderen. 1 WebControls heeft 1 render moment. Het enige wat ik me voor kan stellen is dat je het object cloned.

Kun je wat voorbeelden geven hoe je het praktisch gaat toepassen en hoe de structuur van je code is?
Nou klinkt 't misschien heel raar, maar is 't niet zo dat er wel maar één render moment is, maar dat die render eigenlijk alleen op je top container is? Waarschijnlijk op je Page object ofzo... Als 't goed is heeft een control een render methode, die vervolgens voor alle childcontrols weer die render methode aanroept.

Als je 't zo bekijkt zou je een control aan meerdere control collections moeten kunnen toevoegen, zodat die control ook meerdere keren gerenderd wordt. Dit is natuurlijk tenzij die control z'n state wijzigt in die render methode.

Ik ga 't even testen :P

[edit]
Nee, helaas, ik krijg 't zo niet aan de gang :'(

Wat je anders zou kunnen doen is je container waar je 't in gooit (een placeholder denk ik? of een panel wellicht...) overerven in een nieuwe class, waar je de render methode aanpast zodat ie de render methode van alle child controls uitvoert 'on-render'.

Of je gooit gewoon 2x die button control van je in de pagina, da's ook een oplossing ;-)

[ Voor 17% gewijzigd door Verwijderd op 16-01-2008 08:42 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20-11 23:37

TeeDee

CQB 241

Ik denk dat je naar onderstaande werkwijze moet gaan kijken.

Pseudo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
ContainerTop.addButton(IndexButton);
ContainerTop.addButton(PostButton);
ContainerTop.CommandName("EenMethod");

ContainerBottom.addButton(IndexButton);
ContainerBottom.addButton(PostButton);
ContainerBottom.CommandName("EenMethod");

private void EenMethod(object sender,CommandEventArgs args)
{
// doe dingen. In sender kan je uiteraard kijken wie of wat verzonden heeft.
}

Heart..pumps blood.Has nothing to do with emotion! Bored