Bonjour,
J'essaie de récupérer le contenu d'un contrôle personnalisé dans un String.
Pour cela, j'utilise la méthode RenderControl comme ceci :
Cette partie du code fonctionne parfaitement. Je l'ai testé avec l'exemple donné sur ce site : http://stevesmithblog.com/blog/rende...rol-as-string/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 ctrlComment commentControl = new ctrlComment(); commentControl.Auteur = "Jack"; commentControl.Message = "Le message de jack"; StringBuilder sb = new StringBuilder(); using (StringWriter sw = new StringWriter(sb)) { using (HtmlTextWriter textWriter = new HtmlTextWriter(sw)) { commentControl.RenderControl(textWriter); } } String contenu = sb.ToString();
Le problème arrive quand j'essaie d'utiliser un contrôle que j'ai créé.
Code du contrôle : commentaire.ascx
Code Behind :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ctrlComment.ascx.cs" Inherits="Blog.Web.Controls.ctrlComment" %> <div class="commentaire"> <strong class="auteur"> <asp:Literal ID="txtAuteur" runat="server" Text="Unknown"></asp:Literal> </strong> <p class="message"> <asp:Literal ID="txtMessage" runat="server" Text="No Text"></asp:Literal> </p> </div>
Quand j'utilise ce contrôle, le string récupérer est vide alors qu'il devrait contenir le code html du contrôle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 public partial class ctrlComment : System.Web.UI.UserControl { private String _auteur; private String _message; #region Properties public String Auteur { get { return _auteur; } set { _auteur = value; } } public String Message { get { return _message; } set { _message = value; } } #endregion protected void Page_Load(Object sender, EventArgs e) { txtAuteur.Text = this.Auteur; txtMessage.Text = this.Message; } }
Je voulais savoir si j'avais oublier quelque chose dans mon code ou quelque autre erreur que j'aurai pu commettre.
Pour information, le contrôle fonctionne parfaitement quand je l'utilise dans une page.
Merci d'avance pour votre aide
Partager