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 :

nombre de lignes automatique pour un TextBox


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Par défaut nombre de lignes automatique pour un TextBox
    Bonjour


    outils : asp net C# (visual studio 2005)

    J'ai un texbox sur 3 lignes dans ma page aspx
    Il se peut qu'il y ait plus de 3 lignes à afficher

    si enable=true alors j'ai l'ascenseur qui me permet de faire défiler les lignes (pas génial s'il y en a une trentaine ...)

    si enable=false (ce qui esst le cas pour que l'utilisateur ne puisse que lire le contenu du textbox), il n'y a plus d'ascenseur et seules trois ligne figées seront lisibles

    L'idée est d'ajuster automatiquement la hauteur (le nombre de lignes) du textbox en fonction de son contenu pour que toutes les lignes soient affichées

    Question :
    Existe t-il une solution simple (du coté serveur ? ou en Javascript peut-être ?) pour automatiser cela ?

    Précision : le contenu est cherché dans une table SQL serveur 2000 via une "stored procedure"

  2. #2
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    Bonjour,

    A mon avis il faut que tu gère ca au niveau du code behind,

    Suivant le nombre d'enregistrement tu affecter el nombre de ligne grâce à la propriété Rows.

    Dans ce genre la :

    ASPX :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:TextBox ID="TB_text" Rows="3" runat="server" CssClass="TB" >
    Behind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int nb_lign = GET_NB_ENREGISTREMENT();
    TB_text.Rows = nb_lign;

  3. #3
    Membre éclairé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Par défaut
    oui je vais faire cela de suite
    je pensais pouvoir éviter des aller-retour serveur mais cela ne me parrait pas possible vu que le nombre de lignes est envoyées par le serveur

    je récupère de la table le contenu à placer dans le TextBox
    C'est un champ SQL nvarchar(500)
    Comment récupérer le nombre de lignes ?
    - dans SQL via t-SQL ?
    - dans C# (code behind) via une variable string ?

    Les sauts de lignes seront des CrLf càd des CHR(13)
    ou existe t-il une méthode de l'objet string ?
    Dois-je plutôt utiliser un autre objet ?

  4. #4
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    Je le ferait dans le code behind avec l'objet string car il existe une méthode Split adéquat dans notre cas.

    http://msdn.microsoft.com/fr-fr/libr...8VS.80%29.aspx

    dans ton cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char separator = '\x0013';
    string result_requet = GET_MON_TEXT() ; //retourne ton varchar(500);
    int nb_lign = result_requet.Split(separator).Length;
    TB_text.Rows = nb_lign;

  5. #5
    Membre éclairé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Par défaut
    tu es génial

    merci de ton aide précieuse

    Je vais tester tout cela en début d'après midi, mais la logique de ce code ne peut être que la bonne ...

    bonne journée à toi

  6. #6
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    A ton service

  7. #7
    Membre éclairé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Par défaut
    bonjour
    il reste quand même un souci :

    Dans la chaine de caractère de test, récupérée via une procédure stockée de sql server, j'obtiens le contenu : "ligne 1\r\n2\r\n3\r\n4\r\net fin"

    les sauts de ligne sont représentés apparemment par "\r\n" vue que l'affichage est (voir pièce jointe)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ligne1
    2
    3
    4
    et fin
    mais une seule ligne est détectée dans le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char separator = '\x0013';
    string result_requet = GET_MON_TEXT() ; //retourne ton varchar(500);
    int nb_lign = result_requet.Split(separator).Length;
    TB_text.Rows = nb_lign;
    nb_lign = 1 dans tous les cas


    donc le separator ne correspond peut-être pas à "\r\n"

    qu'en penses-tu ?
    Images attachées Images attachées  

  8. #8
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    Essai de mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char separator = '\x000D';
    Regarde dans la table ascii :
    http://www.table-ascii.com/

    Et sinon il existe une surcharge de Split qui prend les string donc tu peux essayer de mettre "\r\n" mais je ne sais pas si cela fonctionne bien je n'est jamais utilisé cette surcharge.

  9. #9
    Membre éclairé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2005
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 534
    Par défaut
    La vérité est là
    Cette fois-ci est la bonne

    j'avais une autre voie, c'était de supprimer les occurrences '\r' ou le '\n' de la chaine de caractère réceptionnée vue que '\x0013' doit correspondre seulement à l'un des deux

    Dans tous les cas je vais me familiariser un peu plus avec la table ASCII dont tu m'as fourni le lien

    merci
    @+

  10. #10
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    Hésite pas si tu as d'autres questions ou soucis.

    Bon code

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

Discussions similaires

  1. [AC-2007] Trouver le nombre de lignes remplies d'un TextBox
    Par Triton972 dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/12/2011, 22h42
  2. Réponses: 7
    Dernier message: 27/10/2011, 17h27
  3. Réponses: 5
    Dernier message: 25/10/2011, 03h16
  4. [XL-2003] Sauts de Ligne automatiques sur 2 Textbox
    Par MarcelG dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 14/08/2009, 14h52
  5. Nombre de lignes affichables ds une TextBox
    Par Isher dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/02/2008, 10h21

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