OVH Cloud OVH Cloud

ajout controle en cascade dans placeholder

2 réponses
Avatar
hd
Bonjour,

Je souhaite ajouter des controls dans un placeholder par prog.
Le rendu serait:
<dl id="menu" class="menu">
<dt>
<span>Liens</span>
</dt>
<dd>
<ul>
<li><a href="..." target="_blank">...</a>
</ul>
</dd>
</dl>

Hors il n'a pas l'air d'être possible d'ajoutter plus d'un élémeent en
cascade.
...
' * 4ème tag
tag4 = New HtmlGenericControl
tag4.TagName = "ul"

' * 1er lien
tag5 = New HtmlGenericControl
tag5.TagName = "li"
lien1 = New HtmlAnchor
lien1.HRef = "/?rub=site"
lien1.InnerHtml = "Site Web"

tag1.Controls.Add(tag2)
tag2.Controls.Add(tag3)
tag3.Controls.Add(tag4)
'tag4.Controls.Add(tag5)
'tag5.Controls.Add(lien1)

_EnTete.Controls.Add(tag3)
...

Y aurait-il une autre solution?
Merci d'acance
Hervé

2 réponses

Avatar
Frederic Melantois
Bonjour,

Comme indiqué ici :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt06.asp

Il faut éviter de créer de grandes hiérarchies de contrôles.

A votre place, en utilisant le PlaceHolder, j'y chargerai plutôt un user
control (ascx) avec des propriétés. Cela présente plusieurs avantages :

- vous bénéficiez du design
- vous augmentez la maintenabilité de votre code
- vous pouvez utiliser à loisir un mécanisme de cache pour ce user control

Frédéric Mélantois

"hd" a écrit dans le message de
news:
Bonjour,

Je souhaite ajouter des controls dans un placeholder par prog.
Le rendu serait:
<dl id="menu" class="menu">
<dt>
<span>Liens</span>
</dt>
<dd>
<ul>
<li><a href="..." target="_blank">...</a>
</ul>
</dd>
</dl>

Hors il n'a pas l'air d'être possible d'ajoutter plus d'un élémeent en
cascade.
...
' * 4ème tag
tag4 = New HtmlGenericControl
tag4.TagName = "ul"

' * 1er lien
tag5 = New HtmlGenericControl
tag5.TagName = "li"
lien1 = New HtmlAnchor
lien1.HRef = "/?rub=site"
lien1.InnerHtml = "Site Web"

tag1.Controls.Add(tag2)
tag2.Controls.Add(tag3)
tag3.Controls.Add(tag4)
'tag4.Controls.Add(tag5)
'tag5.Controls.Add(lien1)

_EnTete.Controls.Add(tag3)
...

Y aurait-il une autre solution?
Merci d'acance
Hervé


Avatar
hd
Bonjour,
Merci ça l'air d'être une bonne idée.
Je suis déjà dans un UserControl, donc à voir si celà ne pose pas les
memes problèmes en intégrant des UserControl dans des UserControl !?
a+
hervé

Frederic Melantois a écrit :
Bonjour,

Comme indiqué ici :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt06.asp

Il faut éviter de créer de grandes hiérarchies de contrôles.

A votre place, en utilisant le PlaceHolder, j'y chargerai plutôt un user
control (ascx) avec des propriétés. Cela présente plusieurs avantages :

- vous bénéficiez du design
- vous augmentez la maintenabilité de votre code
- vous pouvez utiliser à loisir un mécanisme de cache pour ce user control

Frédéric Mélantois

"hd" a écrit dans le message de
news:

Bonjour,

Je souhaite ajouter des controls dans un placeholder par prog.
Le rendu serait:
<dl id="menu" class="menu">
<dt>
<span>Liens</span>
</dt>
<dd>
<ul>
<li><a href="..." target="_blank">...</a>
</ul>
</dd>
</dl>

Hors il n'a pas l'air d'être possible d'ajoutter plus d'un élémeent en
cascade.
...
' * 4ème tag
tag4 = New HtmlGenericControl
tag4.TagName = "ul"

' * 1er lien
tag5 = New HtmlGenericControl
tag5.TagName = "li"
lien1 = New HtmlAnchor
lien1.HRef = "/?rub=site"
lien1.InnerHtml = "Site Web"

tag1.Controls.Add(tag2)
tag2.Controls.Add(tag3)
tag3.Controls.Add(tag4)
'tag4.Controls.Add(tag5)
'tag5.Controls.Add(lien1)

_EnTete.Controls.Add(tag3)
...

Y aurait-il une autre solution?
Merci d'acance
Hervé