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 :

[C#] DataGrid + saut de ligne


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 100
    Points : 64
    Points
    64
    Par défaut [C#] DataGrid + saut de ligne
    J'ai un datagrid avec un ItemTemplate.
    L'itemTemplate affiche des infos de ma base access du champ "description" de type mémo dans un label (lbDescriptionComment)

    Seulement, il n'affiche pas les sauts de lignes dans le texte... il concatene le tout sur une ligne...

    que dois faire pour pouvoir afficher des sauts ?
    voici 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
     
    <asp:datagrid id="dgDem" runat="server" CssClass="normal12px" AutoGenerateColumns="False" AllowSorting="True" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="3" AllowPaging="True" Visible="true"> 
    <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#D1C3B3"></SelectedItemStyle>
    <ItemStyle ForeColor="#000066"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="black" BackColor="#D1C3B3" ></HeaderStyle> 
    <FooterStyle ForeColor="#000066" BackColor="White"></FooterStyle>
    <Columns>
    	<asp:TemplateColumn HeaderText="Date/Auteur">
    	<HeaderStyle HorizontalAlign="center" />
    	<ItemTemplate>
    	<span class="normal12pxb">
    		<asp:Label id="lbDateCreation" runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.datecreation") %>' />
    	</span>
    	<br>
    		<asp:Label id="lbAuteur" runat="server" Text='<%# SgBase.GetTrollName(Int32.Parse(DataBinder.Eval(Container, "DataItem.idmembre").ToString())) %>' />
    							</ItemTemplate> 
    						</asp:TemplateColumn>
     						<asp:TemplateColumn HeaderText="Commentaires"> 
     						<HeaderStyle HorizontalAlign="center" />
    							<ItemStyle Font-Underline="False" Font-Bold="False"></ItemStyle>
    							<ItemTemplate>
    								<span class="normal14pxbm">
    								<asp:Label id="lbTitreComment" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.titre") %>' />
    								</span><br><asp:Label id="lbDescriptionComment" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.description") %>' />
    							</ItemTemplate> 
    						</asp:TemplateColumn>
     </Columns>
     <PagerStyle HorizontalAlign="Left" Font-Bold="true" ForeColor="#000000" BackColor="#D1C3B3" Mode="NumericPages"></PagerStyle>
     </asp:datagrid>
    c'est au niveau de lbDrescriptionComment que ca gene...

  2. #2
    Membre régulier Avatar de chman
    Inscrit en
    Novembre 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 94
    Points : 97
    Points
    97
    Par défaut
    salut,

    tu dois remplacer tes sauts de lignes (ou ajouter à chaque fin de ligne) des <BR> comme c du html

  3. #3
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    je dois faire une fonction qui transforme les saut de ligne en <br> avant d'afficher ?
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <%# changeSaut(DataBinder.Eval(Container, "DataItem.description") %>
     
    public string changeSaut(string _texte)
    {
       string texte = _texte;
       texte.Replace(" ??? ","<br>");
       return texte;
    }
    par contre le " ??? " je ne sais pas trop si c'est \r\n ou \\r\\n ou \n ....

  4. #4
    Membre régulier Avatar de chman
    Inscrit en
    Novembre 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 94
    Points : 97
    Points
    97
    Par défaut
    en vb, tu as les constantes vb.crlf, vb.newline, etc...,

    sous Windows c'est crlf, mais si tu obtient ça à partir d'un navigateur je suis pas sur que cela soit forcement

  5. #5
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    dans le champ Mémo d'Access je ne sais pas comment est stocké le retour chariot ... ?
    je viens de tester avec \n, \r\n ca marche pas...

  6. #6
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    sinon j'ai remplacé temporairement le label par un TextBox. j'ai enlevé les bordures etc... seulement il y a un scrollbar et ca garde toujours la meme taille... pas tres pratique car il faut défiler...

    Je chercherai plus tard et si je trouve je mettrai la solution

    merci

  7. #7
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    bon voila j'ai fais une petite fonction pour les retours chariots et aussi espace vide.
    Ce que ca fait :
    - ajoute des "<br>" a la fin de la ligne quand il trouve un retour chariot
    - ajoute un '<br>" si le nombre de caractères == 86
    - remplace les espaces vides avec "&nbrp;"
    - renvoie un string

    Vous pouvez toujours l'améliorer

    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
     
    public static string ChangeToBR(string _texte)
    {
      char retourChariot = (char)13;
      string tep = retourChariot.ToString();
      string str = _texte.Replace(tep,"<br>");  // retour chariot
      str.Replace(" ","&nbsp;");  // espace vide
     
      string str2 = null;
     
      for(int i=0, j=0; i < _texte.Length; i++,j++)
      {
         str2 += _texte[i];
         if(j == 86)   // nombre de caracteres max par ligne = 86
         {
             str2 += "<br>";
             j=0;
          }
      }
    return (string)str2;
    }
    voila. J'espere que ca aidera

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 154
    Points : 62
    Points
    62
    Par défaut
    La solution:

    texte = texte.Replace(vbCrLf, "<br>")

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

Discussions similaires

  1. Saut de ligne sans <br/>
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 21/06/2007, 11h21
  2. [Saut de ligne] Problèmes bizarre
    Par gandalf_le_blanc dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 06/04/2004, 14h06
  3. Nombre de sauts de ligne dans un String
    Par Johnbob dans le forum ASP
    Réponses: 7
    Dernier message: 03/03/2004, 15h33
  4. Lecture de saut de ligne...
    Par Garion dans le forum C
    Réponses: 5
    Dernier message: 13/02/2004, 11h42
  5. [JTextPane] saut de ligne...
    Par neric dans le forum Composants
    Réponses: 2
    Dernier message: 21/01/2004, 15h01

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