none
supprimer ou faire evoluer l'attribue "Row" du textBox sur Internet Explorer RRS feed

  • Question

  • bonjour,

    je cree et remplis dynamiquement des textBox d'une source de données (SQL SERVER)

    je rencontre un problème avec Ineternet Explorer. il n'affiche que 2 lignes du textBox. alors que je veux qu'il affiche tous le texte sans scroller.

    pouvez vous me dire ce qui ne va pas avec ce code source??

    Code :

    TextBox textBoxCommentaireAAfficher = new TextBox();
    textBoxCommentaireAAfficher.BorderWidth = 0;
    textBoxCommentaireAAfficher.TextMode = TextBoxMode.MultiLine;
    textBoxCommentaireAAfficher.ReadOnly = true;
    textBoxCommentaireAAfficher.Wrap = true;
    textBoxCommentaireAAfficher.Style.Add(HtmlTextWriterStyle.OverflowY, "hidden");
    textBoxCommentaireAAfficher.Style.Add(HtmlTextWriterStyle.Height, "100%");
    textBoxldCommentaireAAfficher.Text = commentaire;

    merci d'avance :)

    lundi 25 novembre 2013 10:59

Réponses

  • D'accord, mais tous ca vas se transformer en code HTML qui sera affichée dans l'explorateur.
    C'est pour ça que vous devez travailler dans le fichier ASPX.
    Voici un petit exemple qui fonctionne:

    pageLoad.aspx.cs

    TextBox textBoxCommentaireAAfficher = new TextBox();
    textBoxCommentaireAAfficher.ID = "TheControl";
    textBoxCommentaireAAfficher.BorderWidth = 0;
    textBoxCommentaireAAfficher.TextMode = TextBoxMode.MultiLine;
    textBoxCommentaireAAfficher.ReadOnly = true;
    textBoxCommentaireAAfficher.Wrap = true;
    textBoxCommentaireAAfficher.Style.Add(HtmlTextWriterStyle.OverflowY, "hidden");
    textBoxCommentaireAAfficher.Style.Add(HtmlTextWriterStyle.Height, "100%");
    textBoxCommentaireAAfficher.Text = " ligne 1 " + Constants.vbCrLf + " ligne 2 " + Constants.vbCrLf + " ligne 3 " + Constants.vbCrLf + " ligne 4 " + Constants.vbCrLf + " ligne 5 " + Constants.vbCrLf + " ligne 6 " + Constants.vbCrLf + " ligne 7 " + Constants.vbCrLf + " ligne 8 " + Constants.vbCrLf + " ligne 9 " + Constants.vbCrLf + " ligne 2 " + Constants.vbCrLf + " ligne 10 ";
    mainDiv.Controls.Add(textBoxCommentaireAAfficher);

    et pageLoad.aspx

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="TestPage.aspx.vb" Inherits="TestPage" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
       <script src="Scripts/jquery-1.10.2.js"></script>
        <script src="Scripts/jquery.flexibleArea.js"></script>
        <script>
            $(function () {
                $("textarea").flexible();
            });
    
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div id="mainDiv" runat ="server">
        
        </div>
        </form>
    </body>
    </html>

    Cordialement,

    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    • Modifié Aurel Bera mercredi 27 novembre 2013 14:28
    • Marqué comme réponse ahmedmahdi jeudi 28 novembre 2013 09:23
    mercredi 27 novembre 2013 14:28

Toutes les réponses

  • Bonjour,

    Définissez la propriétés Rows (http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.textbox.rows.aspx) de votre TextBox :

    textBoxCommentaireAAfficher.Rows = 10;

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    lundi 25 novembre 2013 14:19
    Modérateur
  • oui m'ai si mon commentaire fait plus de 10 lignes

    en plus si quelqu'un poste un commentaire de une ligne, je n'affiche comeme pas 10 lignes (c'est un peu moche. non??).

    lundi 25 novembre 2013 16:52
  • Bonjour,

    Dans ce cas, il faudra utiliser du code JavaScript afin de créer un TextArea qui s'agrandi de manière automatique :

    http://stackoverflow.com/questions/454202/creating-a-textarea-with-auto-resize

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    lundi 25 novembre 2013 23:19
    Modérateur
  • mais les textBox sont des champs dynamiques. ils sont créer depuis le C#

    Edit :

    j'ai compris d'ou venais le problème. en faite je créais les textBox sans spécifié des ID. donc il execute a seulement au dernier textBox. la elle est bien executé, mais je la trouve qu'elle est manquante :

    textBoxCommentaireAAfficher.Rows = commentaire.Count(c => c == '\n')+2;

    Certes, elle est propre mais, elle est manquante. Si on met Wrap=true, il y aura des retours à la ligne non detecté


    • Modifié ahmedmahdi mardi 26 novembre 2013 10:57
    mardi 26 novembre 2013 09:45
  • Bonjour ahmedmahdi

    La propriété « Wrap » signale au TextArea d’envelopper pour qu’on n’a pas des Scroll bar  horizontales.

    Pour mieux voir faites un teste avec notepad et Format\Word Wrap.

    Même si vous utilisez un component ASP.NET  il va devenir un élément HTML dans la page.  En plus sera difficile ou impossible de calculer la taille exacte de cote serveur.  Donc essayez de adapter l’exemple fournis par Gilles  (ou un autre).

    Je trouve celui-ci très facile à utiliser :

    http://flaviusmatis.github.io/flexibleArea.js/

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    • Modifié Aurel Bera mardi 26 novembre 2013 12:34
    mardi 26 novembre 2013 12:22
  • je n'ai pas réussi à ajouter du JavaScript en C# puisque ces contrôles sont créer dynamiquement
    mercredi 27 novembre 2013 12:47
  • Vous ne devez pas les ajouter dans la page aspx.cs mais dans la page .aspx.
    En plus l'exemple que je vous ai donné vas redimensionner tous les TextArea.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 27 novembre 2013 12:51
  • je récupère les commentaires de la base de données donc je les récupère du code behind (aspx.cs)
    mercredi 27 novembre 2013 13:37
  • D'accord, mais tous ca vas se transformer en code HTML qui sera affichée dans l'explorateur.
    C'est pour ça que vous devez travailler dans le fichier ASPX.
    Voici un petit exemple qui fonctionne:

    pageLoad.aspx.cs

    TextBox textBoxCommentaireAAfficher = new TextBox();
    textBoxCommentaireAAfficher.ID = "TheControl";
    textBoxCommentaireAAfficher.BorderWidth = 0;
    textBoxCommentaireAAfficher.TextMode = TextBoxMode.MultiLine;
    textBoxCommentaireAAfficher.ReadOnly = true;
    textBoxCommentaireAAfficher.Wrap = true;
    textBoxCommentaireAAfficher.Style.Add(HtmlTextWriterStyle.OverflowY, "hidden");
    textBoxCommentaireAAfficher.Style.Add(HtmlTextWriterStyle.Height, "100%");
    textBoxCommentaireAAfficher.Text = " ligne 1 " + Constants.vbCrLf + " ligne 2 " + Constants.vbCrLf + " ligne 3 " + Constants.vbCrLf + " ligne 4 " + Constants.vbCrLf + " ligne 5 " + Constants.vbCrLf + " ligne 6 " + Constants.vbCrLf + " ligne 7 " + Constants.vbCrLf + " ligne 8 " + Constants.vbCrLf + " ligne 9 " + Constants.vbCrLf + " ligne 2 " + Constants.vbCrLf + " ligne 10 ";
    mainDiv.Controls.Add(textBoxCommentaireAAfficher);

    et pageLoad.aspx

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="TestPage.aspx.vb" Inherits="TestPage" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
       <script src="Scripts/jquery-1.10.2.js"></script>
        <script src="Scripts/jquery.flexibleArea.js"></script>
        <script>
            $(function () {
                $("textarea").flexible();
            });
    
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div id="mainDiv" runat ="server">
        
        </div>
        </form>
    </body>
    </html>

    Cordialement,

    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    • Modifié Aurel Bera mercredi 27 novembre 2013 14:28
    • Marqué comme réponse ahmedmahdi jeudi 28 novembre 2013 09:23
    mercredi 27 novembre 2013 14:28
  • merci pour ton aide je la met en place et je ferai mon retour

    EDIT :

    elle est fonctionnel.

    merci beaucoup de m'avoir aidé :)



    • Modifié ahmedmahdi jeudi 28 novembre 2013 09:55
    mercredi 27 novembre 2013 15:59