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 :

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();
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/

Le problème arrive quand j'essaie d'utiliser un contrôle que j'ai créé.

Code du contrôle : commentaire.ascx
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>
Code Behind :
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;
        }
    }
Quand j'utilise ce contrôle, le string récupérer est vide alors qu'il devrait contenir le code html du contrôle.
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