none
Problème Saut de ligne dans une TextBox d'une formview RRS feed

  • Question

  • Bonjour,

    Tout d
    'abord merci de lire mon message. Je suis tout nouveau dans la communauté ASP avec à peine 2-3 semaines de pratique  et je rencontre un problème...

    J'aimerais juste avant l'insertion dans ma bdd qui recueille des News remplacer les saut de lignes d'une textbox située dans un formview. Hors je galère à prendre le contrôle de ce fameux text avant l'insertion pour remplacer les sauts de lignes (\n \r par <br>).
    J'ai lu quelques thread concernant indiquant la prise du contrôle avec CType mais apparemment cela ne marche pas pour mon cas.

    J'ai effectué des tests du contenu des text box mais rien n'a abouti

    Code Snippet

    Response.Write "<script type='text/javascript'>alert('" & test & "');</script>"



    Code behind :

    Code Snippet

    'Transformation des retours à la ligne '\n' '\r' en <br> <p/> des textbox à l'insertion

     Protected Sub
    FormView1_ItemInserting(ByVal sender As Object, ByVal e As
    System.Web.UI.WebControls.FormViewInsertEventArgs) Handles
    FormView1.ItemInserting  


            Dim test As String = CType(FormView1.FindControl("TextBox1"), TextBox).Text


            Replace(test, "\n", "<p/>")

            Replace(test, "\r", "<br/>")



        End Sub









    Code page :

    Code Snippet

    <asp:FormView ID="FormView1" runat="server" DataKeyNames="ID_News"

    DataSourceID="SqlDataSource1" DefaultMode="Insert">


    <InsertItemTemplate>

    [...]

    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("TexteFR") %>' TextMode="MultiLine" MaxLength="400" Height="132px" Width="600" EnableTheming="False" ></asp:TextBox>

    [...]


    </InsertItemTemplate>

    </asp:FormView>


    Merci d'avance,

    Benjamin




    • Déplacé Siddharth Chavan mercredi 7 juillet 2010 07:03 Forums Consolidation (Origine :Forum du coach ASP.NET)
    lundi 11 août 2008 14:00

Réponses

  • Je me réponds à moi même je suis passé par le javascript, si ça peut intéresser :
    Code Snippet

    function remplacement_saut_de_ligne()
    {
    document.getElementById('<%=FormView1.FindControl("TextBox1").ClientID%>').value=document.getElementById('<%=FormView1.FindControl("TextBox1").ClientID%>').value.replace(/\n/gi,"<br>");
    document.getElementById('<%=FormView1.FindControl("TextBox4").ClientID%>').value=document.getElementById('<%=FormView1.FindControl("TextBox4").ClientID%>').value.replace(/\n/gi,"<br>");

    }


    C'est un peu bourin mais ça marche !

    (/\n/gi,"<br>")

    "Si tu mets qu'un caractère ou une chaine il ne sera cherché qu'une fois.
    /toto/gi
    cherche tout les "toto" dans la chaine. "g" pour une recherche globale
    (donc tant qu'il n'est pas au bout de ta chaine de caractères) et "i"
    pour ignorer la casse."
    cf (http://www.javascriptfr.com/codes/REMPLACEMENT-CARACTERE-DANS-CHAINE_17590.aspx)

    J'effectue donc cette fonction avant l'insertion.

    A la prochaine,

    Benjamin

    jeudi 14 août 2008 13:08

Toutes les réponses

  • Bonjour,

      Un peu débordé en ce moment donc juste une petite idée :

     

    Code behind :

    Code Snippet

    'Transformation des retours à la ligne '\n' '\r' en <br> <p/> des textbox à l'insertion

     Protected Sub
    FormView1_ItemInserting(ByVal sender As Object, ByVal e As
    System.Web.UI.WebControls.FormViewInsertEventArgs) Handles
    FormView1.ItemInserting  


            Dim test As String = CType(FormView1.FindControl("TextBox1"), TextBox).Text


            test = Replace(test, "\n", "<p/>")

            test = Replace(test, "\r", "<br/>")

    CType(FormView1.FindControl("TextBox1"), TextBox).Text = test
        

        End Sub

     


    A+,
         Stéphane
    mardi 12 août 2008 10:53
  • Bonjour,

    Dsl pour le temps de réaction  aussi ! Merci d'avoir répondu à mon message.

    La solution que tu m'as proposé ne marche pas .

    J'ai fait des tests avec des lettres pour voir si c'était les caractères qu'il ne trouvait pas mais
    test = Replace(test, "a", "b")
    s'est révélé sans succés.

    En fait mon but c'est de faire à la manière de ce forum une textbox  pour faire des news qui sont insérées dans une bdd (Text='<%# Bind("TexteFR") %>' )puis afficher à l'aide d'une datalist qui "comprend" l'html. D'où ma tentative de transformation des sauts de lignes.

    Tout ceci étant dans un formview dans une page qui est inclus dans une masterpage (je ne sais pas si ça influ sur la selection)

    Peut-être que je m'y prend mal dans la sélection des contrôle ? (pourtant sur ce forum j'ai vu un thread avec Ctype)
    Orientation vers le javascript ? (compliqué dans un environnement ASP pour moi petit débutant )

    Bonne journée,

    Benjamin
    jeudi 14 août 2008 09:37
  • Je me réponds à moi même je suis passé par le javascript, si ça peut intéresser :
    Code Snippet

    function remplacement_saut_de_ligne()
    {
    document.getElementById('<%=FormView1.FindControl("TextBox1").ClientID%>').value=document.getElementById('<%=FormView1.FindControl("TextBox1").ClientID%>').value.replace(/\n/gi,"<br>");
    document.getElementById('<%=FormView1.FindControl("TextBox4").ClientID%>').value=document.getElementById('<%=FormView1.FindControl("TextBox4").ClientID%>').value.replace(/\n/gi,"<br>");

    }


    C'est un peu bourin mais ça marche !

    (/\n/gi,"<br>")

    "Si tu mets qu'un caractère ou une chaine il ne sera cherché qu'une fois.
    /toto/gi
    cherche tout les "toto" dans la chaine. "g" pour une recherche globale
    (donc tant qu'il n'est pas au bout de ta chaine de caractères) et "i"
    pour ignorer la casse."
    cf (http://www.javascriptfr.com/codes/REMPLACEMENT-CARACTERE-DANS-CHAINE_17590.aspx)

    J'effectue donc cette fonction avant l'insertion.

    A la prochaine,

    Benjamin

    jeudi 14 août 2008 13:08