2010-10-08 7 views
1

Disons que j'ai un LinkButton généré dynamiquement dans mon code-ascx.cs. Comment pourrais-je "imprimer" ce contrôle sur ma page? Évidemment je ne peux pas faire quelque chose comme juste imprimer la propriété de texte car j'ai besoin du bouton pour conserver son lien hypertexte. Je suppose que je veux utiliser la méthode WebControl.Render, mais je ne suis pas du tout familier et n'ai pas pu trouver un bon exemple de son utilisation.Comment imprimer un LinkButton à la page?

+0

Ma réponse vous montre comment vous pouvez réaliser ce que vous voulez faire avec votre idée initiale de la méthode RenderControl – citronas

Répondre

1

Vous pouvez fournir une étiquette au bon endroit dans la page: <asp:Label id="myLinkButtonPlace" runat="server"></asp:Label>, et dans le code, vous pouvez ajouter le linkbutton à ControlCollection de l'étiquette: this.myLinkButtonPlace.Controls.Add(aLinkButton);

+0

Je ne peux pas accéder à myLinkButtonPlace à partir du code. Lorsque j'essaie de faire myLinkButtonPlace.Controls.Add (bouton), il ne reconnaît pas myLinkButtonPlace. –

+0

Pas même si vous essayez de le construire? Parfois, le compilateur VS se développe un peu en retard sur le balisage de asp.net. –

+0

Oui, ça me rend confus. –

1

Faisant suite à @Joachim VR, il y a beaucoup d'autres contrôles asp.net avec lesquels vous pouvez ajouter un contrôle créé dynamiquement.

<asp:Label id="Label1" runat="server" /> 
<asp:PlaceHolder id="Placeholder1" runat="server" /> 
<asp:Panel id="Panel1" runat="server" /> 

Ce qui précède rendrait le code HTML différent. Ainsi, le label viderait comme <span id="Label1"><a></a></span>
Panel comme < div id="Placeholder1"><a></a></div>
Le Placeholder simplement rendre comme <a></a>