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 Discussion :

Formater un texte


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Points : 49
    Points
    49
    Par défaut Formater un texte
    Bonjour!

    J'ai un petit formulaire permettant d'ajouter une nouvelle dans une base de donnée sql server 2005. Le problème c'est que le texte doit être formater avant d'entrer dans la base de données, c'est a dire trouver le moyen de reconnaitre les retour et les remplacer par des <br>, les é par des &eacute;, etc pour que ca affiche correctement en suite. Le hic c'est que je suis en code behind vb.net et que j'ai du mal a comprendre comment faire ca (déjà je connais pas vb.net et je sais pas comment faire en sorte de reformater avant de mettre en base de données, je commence en asp.net) Je vous met mon code:

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <asp:FormView ID="FormView1" runat="server" DataKeyNames="News_Id" DataSourceID="dsNewsMod2"
                    DefaultMode="Insert" CellPadding="5">
                    <InsertItemTemplate>
                        <asp:Label ID="Label1" runat="server" CssClass="titreAdmin" Text="Titre:"></asp:Label>
                        <asp:TextBox ID="TitreTextBox" runat="server" Text='<%# Bind("Titre") %>'>
                        </asp:TextBox><br /><br />
                        <asp:Label ID="Label2" runat="server" CssClass="titreAdmin" Text="Date:"></asp:Label>
                        <asp:TextBox ID="DateTextBox" runat="server" Text='<%# Bind("Date") %>'>
                        </asp:TextBox><br /><asp:Label ID="Label4" runat="server" CssClass="textePetit" Text="aaaa-mm-jj"></asp:Label><br /><br />
                        <asp:Label ID="Label3" runat="server" CssClass="titreAdmin" Text="Nouvelle:"></asp:Label><br />
                        <asp:TextBox ID="NouvelleTextBox" runat="server" Text='<%# Bind("Nouvelle") %>' TextMode="MultiLine" Rows="5" Width="200px"></asp:TextBox><br /><br />
                        <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
                            Text="Ajouter" CssClass="lienAdmin"></asp:LinkButton>
                        <asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
                            Text="Annulé" CssClass="lienAdmin"></asp:LinkButton>
                    </InsertItemTemplate>
                    <ItemTemplate>
                        News_Id:
                        <asp:Label ID="News_IdLabel" runat="server" Text='<%# Eval("News_Id") %>'></asp:Label><br />
                        Titre:
                        <asp:Label ID="TitreLabel" runat="server" Text='<%# Bind("Titre") %>'></asp:Label><br />
                        Date:
                        <asp:Label ID="DateLabel" runat="server" Text='<%# Bind("Date") %>'></asp:Label><br />
                        Nouvelle:
                        <asp:Label ID="NouvelleLabel" runat="server" Text='<%# Bind("Nouvelle") %>'></asp:Label><br />
                        <asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" CommandName="New"
                            Text="New">
                        </asp:LinkButton>
                    </ItemTemplate>
                <RowStyle HorizontalAlign="Left" />
                </asp:FormView>
                <br />
                <asp:SqlDataSource ID="dsNewsMod2" runat="server" ConnectionString="<%$ ConnectionStrings:csNex %>" InsertCommand="INSERT INTO [News] ([Titre], [Date], [Nouvelle]) VALUES (@Titre, @Date, @Nouvelle)" SelectCommand="SELECT [News_Id], [Titre], [Date], [Nouvelle] FROM [News]">
                    <InsertParameters>
                        <asp:Parameter Name="Titre" />
                        <asp:Parameter Name="Date" />
                        <asp:Parameter Name="Nouvelle" />
                    </InsertParameters>
                </asp:SqlDataSource>
    Si vous pouvez me donner un coup de main, se serait très aprécié. Merci! :)

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Points : 459
    Points
    459
    Par défaut
    Bonjour,

    Peux tu mettre des balises [code] autour de ton code (# dans l'éditeur), ça le rendra plus lisible .

    Sinon pour ton problème, tu peux essayer comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim sMaChaineFormate as string=MatextBox.text
                'Remplacement retour à la ligne
                sMaChaineFormate = sMaChaineFormate.Replace(Chr(10) & Chr(13), "<br />")
                'Remplacement é
                sMaChaineFormate = sMaChaineFormate.Replace("é", "&eacute;,")
                ...
    Et ainsi de suite pour tous les charactères à remplacés .
    Sinon il existe des controles WYSIWYG qui font ça trés bien, tout dépend aprés de tes finances.
    Deux exemples:
    FreeTextBox etTelerik RadEditor

    Voilà

    Bon courage
    "Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont forcément raison" (Bernard Weber "Le mystere des dieux")

  3. #3
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Sachant que la FreeTextBox est gratuite pour un usage non-commercial ou 50$ pour usage commercial pour une licence.
    Par contre, si tu travailles avec AjaxToolkit, je la déconseille. Elle plante dès qu'elle est dans un UpdatePanel.

    Sinon, il est vrai que ca simplifie pas mal le boulot plutôt que de prendre toutes les balises HTML et de les parser.

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Points : 49
    Points
    49
    Par défaut
    Désolé pour les balises [code], j'avais pas vu...

    J'ai remplacé MatextBox par l'ID de mon textbox mais ca me dit qu'il est pas déclarer. Même chose pour sMaChaineFormate mais Dim c'est une déclaration de variable non?

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Points : 459
    Points
    459
    Par défaut
    Re Bonjour

    Oui, "Dim" indique la déclaration d'une variable .
    Ta TextBox n'est pas accessible car elle est dans un FormView.
    pour la récupérer tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dim maTextBox as new TextBox
    maTextBox =MonFormView.FindControl("idMaTextBox")
    Mais attention à l'évènement dans lequel tu executes ce bout de code .

    Voilà
    "Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont forcément raison" (Bernard Weber "Le mystere des dieux")

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Points : 49
    Points
    49
    Par défaut
    Il attend encore que je la déclare, pourtant elle est déclaré une ligne plus haut...

  7. #7
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Points : 459
    Points
    459
    Par défaut
    Peux tu nous mettre ton code pour que ce soit plus clair?
    "Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont forcément raison" (Bernard Weber "Le mystere des dieux")

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Points : 49
    Points
    49
    Par défaut
    La page comme telle:

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="newsAj.aspx.vb" Inherits="newsAj" title="Untitled Page" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="Main" Runat="Server">
        <br /><br />
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="admin.aspx" CssClass="lien1">Retour &agrave; la page Admin</asp:HyperLink>
        <asp:Label ID="Label3" runat="server" Text=" / "></asp:Label>
        <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="newsMod.aspx" CssClass="lien1">Modifier ou supprimer une nouvelle</asp:HyperLink>
        <div align=center><br /><br />
            <asp:FormView ID="FormView1" runat="server" DataKeyNames="News_Id" DataSourceID="dsNewsMod2"
                    DefaultMode="Insert" CellPadding="5">
                    <InsertItemTemplate>
                        <asp:Label ID="Label1" runat="server" CssClass="titreAdmin" Text="Titre:"></asp:Label>
                        <asp:TextBox ID="TitreTextBox" runat="server" Text='<%# Bind("Titre") %>'>
                        </asp:TextBox><br /><br />
                        <asp:Label ID="Label2" runat="server" CssClass="titreAdmin" Text="Date:"></asp:Label>
                        <asp:TextBox ID="DateTextBox" runat="server" Text='<%# Bind("Date") %>'>
                        </asp:TextBox><br /><asp:Label ID="Label4" runat="server" CssClass="textePetit" Text="aaaa-mm-jj"></asp:Label><br /><br />
                        <asp:Label ID="Label3" runat="server" CssClass="titreAdmin" Text="Nouvelle:"></asp:Label><br />
                        <asp:TextBox ID="NouvelleTextBox" runat="server" Text='<%# Bind("Nouvelle") %>' TextMode="MultiLine" Rows="5" Width="200px"></asp:TextBox><br /><br />
                        <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert"
                            Text="Ajouter" CssClass="lienAdmin"></asp:LinkButton>
                        <asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel"
                            Text="Annulé" CssClass="lienAdmin"></asp:LinkButton>
                    </InsertItemTemplate>
                    <ItemTemplate>
                        News_Id:
                        <asp:Label ID="News_IdLabel" runat="server" Text='<%# Eval("News_Id") %>'></asp:Label><br />
                        Titre:
                        <asp:Label ID="TitreLabel" runat="server" Text='<%# Bind("Titre") %>'></asp:Label><br />
                        Date:
                        <asp:Label ID="DateLabel" runat="server" Text='<%# Bind("Date") %>'></asp:Label><br />
                        Nouvelle:
                        <asp:Label ID="NouvelleLabel" runat="server" Text='<%# Bind("Nouvelle") %>'></asp:Label><br />
                        <asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" CommandName="New"
                            Text="New">
                        </asp:LinkButton>
                    </ItemTemplate>
                <RowStyle HorizontalAlign="Left" />
                </asp:FormView>
                <br />
                <asp:SqlDataSource ID="dsNewsMod2" runat="server" ConnectionString="<%$ ConnectionStrings:csNex %>" InsertCommand="INSERT INTO [News] ([Titre], [Date], [Nouvelle]) VALUES (@Titre, @Date, @Nouvelle)" SelectCommand="SELECT [News_Id], [Titre], [Date], [Nouvelle] FROM [News]">
                    <InsertParameters>
                        <asp:Parameter Name="Titre" />
                        <asp:Parameter Name="Date" />
                        <asp:Parameter Name="Nouvelle" />
                    </InsertParameters>
                </asp:SqlDataSource><br /><br /><br /><br />
        </div>
    </asp:Content>
    Et le 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
    Partial Class newsAj
        Inherits System.Web.UI.Page
     
        Dim nouvelleTexte2 As New TextBox
        nouvelleTexte2 = FormView1.FindControl("NouvelleTextBox")
     
        Dim sMaChaineFormate As String = nouvelleTexte2.Text
        'Remplacement retour à la ligne
                sMaChaineFormate = sMaChaineFormate.Replace(Chr(10) & Chr(13), "<br />")
        'Remplacement é
                sMaChaineFormate = sMaChaineFormate.Replace("é", "&eacute;")
     
    End Class
    Y'a surement un truc que je saisis pas lolll

  9. #9
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Points : 459
    Points
    459
    Par défaut
    (Re) Bonsoir,

    Effectivement tu ne peux pas effectué un traitement directement dans une classe il faut le faire dans un méthode (Function ou Sub). A ce niveau, je ne peux que te conseiller de jeter un oeil aux tutoriaux . Il ne serait pas raisonnable (ni intelligent d'ailleurs ) de détailler dans ce fil les bases de la programmation Objet et .Net

    Voilà, bon courage
    "Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont forcément raison" (Bernard Weber "Le mystere des dieux")

  10. #10
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Points : 49
    Points
    49
    Par défaut
    Bon ben mon boss prendra son mal en patience. Merci pour le lien !

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Points : 49
    Points
    49
    Par défaut
    J'avoue que j'ai pas passé a travers tout les tutoriaux, j'en suis a la moitié pour le moment et je vais continuer a lire mais j'ai pas l'impression que ca va m'éclairer sur un point. D'accord je dois mettre le tout dans une fonction, mais j'arrive pas a comprendre comment je l'appelle étant donnée que je dois prendre en compte ce qu'on écrit dans le champs. Comme ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:TextBox ID="TitreTextBox" runat="server" Text='<%# Bind("Titre") %>'></asp:TextBox>
    Ca met directement dans la base de données, alors comment je fais pour modifier? Ou je met l'appelle sur le bouton? Le fait que la mise en base de données se fasse sans que je le code me mélange pas mal en fait, j'ai malheureusement tendance a comparer avec mes références en php. Bref, j'ai du mal a visualisé le tout.

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Points : 49
    Points
    49
    Par défaut
    J'ai suivit les conseils de mafyoso pour formater mon texte c'est a dire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim sMaChaineFormate as string=MatextBox.text
                'Remplacement retour à la ligne
                sMaChaineFormate = sMaChaineFormate.Replace(Chr(10) & Chr(13), "<br />")
                'Remplacement é
                sMaChaineFormate = sMaChaineFormate.Replace("é", "&eacute;,")
    Ca marche impeccable pour les accents mais ca marche pas pour les retours chariot. J'ai testé avec les espaces, ca marche bien. J'ai aussi tester avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim m = Asc(sMaChaineFormate)
            Dim n = InStr(1, Chr(13), sMaChaineFormate)
            nouvelleTextBox.Text = n & " " & m
    Si je fais un retour chariot, inStr le voit jamais et me donne un 0 tandis que Asc me sort soit 13 soit 60, pourtant je tape bien un retour chariot. Vous avez une idée du pourquoi il le voit pas?

  13. #13
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Points : 459
    Points
    459
    Par défaut
    Bonsoir,

    C'est bizare, 'chr(10)chr(13)' représente bien un retour chariot, tu peux essayer ça mais je suis pas sûr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     sMaChaineFormate = sMaChaineFormate.Replace(vbNewLine,"<br />")
    A suivre
    "Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont forcément raison" (Bernard Weber "Le mystere des dieux")

  14. #14
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Points : 49
    Points
    49
    Par défaut
    Ouais! Ca ca marche! Enfin un truc qui marche, ca remonte le moral! Merciiiiiii!

  15. #15
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Si c'est résolu, merci de mettre le tag
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  16. #16
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 91
    Points : 49
    Points
    49
    Par défaut
    J'ai pas mis le tag parce que la 2e partie du problème était pas résolu, mais comme j'ai trouvé le moyen hier soir, je vais le mettre aujourd'hui. Je suis sur décalage horaire, d'ou le délai. Mais merci pour le rappel.

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

Discussions similaires

  1. Formater du texte en shell
    Par YéTeeh dans le forum Linux
    Réponses: 8
    Dernier message: 19/01/2006, 11h46
  2. Formater un texte dans une expression
    Par stéphane_ais2 dans le forum Access
    Réponses: 5
    Dernier message: 18/10/2005, 13h52
  3. Format champ texte
    Par Smint dans le forum Access
    Réponses: 4
    Dernier message: 15/09/2005, 16h27
  4. [LG]Formater le texte dans un WriteLn
    Par busy999 dans le forum Langage
    Réponses: 16
    Dernier message: 15/11/2003, 11h16
  5. Envoi de mail au format Rich-Text
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 29/10/2003, 16h27

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