IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Ajax Discussion :

HTMLEditorExtender : Perte de formattage au PostBack


Sujet :

ASP.NET Ajax

  1. #1
    Membre habitué Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Points : 171
    Points
    171
    Par défaut HTMLEditorExtender : Perte de formattage au PostBack
    Bonjour,

    Je viens vers vous pour un problème étrange, concernant le composant AJAX HTMLEditorExtender.

    En effet, je récupère une chaine formattée en HTML, que je viens mettre dans la propriété text d'un TextBox, sur lequel je greffe le composant Ajax.

    Tout se passe bien, le chargement du composant se fait correctement.

    Le problème vient du fait que sur ma page, j'ai un ImageButton, qui, avec son évènement "OnClientClick", ouvre une popup, qui produit un postback sur ma page après sa fermeture.
    Et au moment du postBack, mon textbox avec le composant Ajax contient la même chaine que précédemment, bien qu'elle soit restée au format brut.

    On dirait que le composant AJAX est activé en mode "Source Tab", et donc qu'il ne tient pas compte du formattage. J'aimerais savoir pourquoi. J'insiste bien sur le fait que le problème se produit au moment du postback, lors du rafraîchissement du composant.

    Ci-dessous le code de ma création du composant :

    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
                                            Dim tb As New TextBox
                                            With tb
                                                .ID = nameField
                                                .Rows = "13"
                                                .Columns = "100"
                                                .CssClass = "inputStyle"
                                                .TextMode = TextBoxMode.MultiLine
                                                .Text = HttpUtility.HtmlDecode(value)
                                            End With
                                            Dim ajaxHtmlEditor As New AjaxControlToolkit.HtmlEditorExtender
                                            With ajaxHtmlEditor
                                                .ID = "htmlEditor" + tb.ID
                                                .TargetControlID = tb.ID
                                                .DisplaySourceTab = False
                                            End With
                                            cellValue.Controls.Add(tb)
                                            cellValue.Controls.Add(ajaxHtmlEditor)
                                            cellValue.Controls.Add(New LiteralControl("<br />"))
    Si quelqu'un peut m'aider... Merci d'avance

  2. #2
    Membre habitué Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Points : 171
    Points
    171
    Par défaut
    Bonjour,

    Pour contourner ce problème lors de la création dynamique de ce composant, deux solutions :

    - Si la page le permet (ie. si on connait à l'avance le nombre de composant HTMLEditorExtender voulu), créer le composant "en dur" dans la page aspx, et le greffer (avec la propriété TargetControlID) à la Textbox créée dynamiquement après sa création.

    - Créer la partie dynamique de la page dans l'évènement PreRender, plutôt que le PageLoad. Le PageLoad sera uniquement utilisé pour l'initialisation des variables de Session ou autre.
    Le PreRender permet de créer les composants une fois que toutes nos variables sont initialisées, et comme le postback est déjà effectué, on ne perd plus le formattage à l'affichage.

    Voilà, sujet résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Postback, perte de variables
    Par Anox31 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 17/11/2009, 18h39
  2. Réponses: 3
    Dernier message: 21/09/2009, 11h33
  3. Réponses: 5
    Dernier message: 26/02/2008, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo