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 :

[VB.Net] Comment décompter les caractères d'une TextBox multiligne?


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 40
    Points : 29
    Points
    29
    Par défaut [VB.Net] Comment décompter les caractères d'une TextBox multiligne?
    Hello à tous !

    J'aimerais faire le décompte des caractères dans une textbox. Je voudrais que l'utilisateur puisse voir combien de caractères il lui reste à saisir sur 255 par exemple.

    J'ai trouvé un petit code en javascript pour ça mais je ne sais pas appliquer la fonction sur la textbox...

    Merci de vos suggestions !

  2. #2
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    je te le fais en C# et je te le décompose. Sur l'évènement TextChanged
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    string text = textbox1.Text;
    int nbcaractere = text.Length;
    int decompte = 255 - nbcaractere ;
    lblDecompte.Text = "Il vous reste "+decompte+" caractères de libre";
    enfantin mais dans ce cas la, à chaque lettre que tu tapes, tu as aller retour serveur.

    Concernant ta fonction javascript, montres la que je te montres comment l'intégrer dans ton code

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Merci.
    Par contre je pense que le javascript évite le retour serveur, et donc l'actualisation de la page à chaque caractère ajouté/supprimé.

    Voici le code javascript :
    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
    <script language="JavaScript">
    var maximum = 255;
     
    function fUpdCompteur() 
    {
    	var longueur = maximum - parseInt(document.txt_recl.keywords.value.length);
    	var longueur2 = maximum - parseInt(document.txt_comm.keywords.value.length);
    	if (longueur <= 0)
    	{
    		document.compteur1.value = 0;
    		document.txt_recl.keywords.value = document.txt_recl.keywords.value.substring (0,maximum);
        }
        else
    		document.compteur1.value = longueur;
    	if (longueur2 <= 0)
     
    	{
    	    document.compteur2.value = 0;
    	    document.txt_comm.keywords.value = document.txt_comm.keywords.value.substring (0,maximum);
    	}
    	else
    	    document.compteur2.value = longueur2;
    }
    </script>
    Merci encore !

  4. #4
    Membre averti
    Avatar de CORBASE
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 246
    Points : 431
    Points
    431
    Par défaut
    Ce qui est sur c'est que le javascript permet de ne pas faire le retour Client / Serveur !

    Ensuite, en VB je ne sais pas comment ça marche
    Rien n'est impossible, c'est juste une question de temps
    C'est quoi le PureBasic ?

  5. #5
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    C'est bien pour cela que je t'ai demandé de me filer ton code javascript que je te montres comment l'intégrer mais tjs en c# car vb.net , la syntaxe me donne des allergies ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NomDeLaTextBox.Attributes.Add("onkeyup","fupdCompteur");
    NomDeLaTextBox.ID = "ID_NomDeLaTextBox";
    et après tu changes ton code et tu récupères ton objet textbox en javascript en utilisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var maximum = 255;
    var textbox = document.getElementById("ID_NomDeLaTextBox");
    var contenu_txt = textbox.value;
    var longueur = maximum - contenu_txt.length;
    etc....
    Je t'ai décomposé le code et je t'ai mis sur la voix. Peut etre que la syntaxe n'est pas tout à fait la bonne.
    Je te fais ça vite fait, j'ai du taffe désolé

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Merci pour ton aide je vais essayer d'adapter tout ça!

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Bon alors on touche au but mais ça coince juste à la fin.
    Voici mon page_load en VB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    txt_recl.Attributes.Add("onkeyup", "fupdCompteur()")
            txt_recl.ID = "txt_recl"
            txt_comm.Attributes.Add("onkeyup", "fupdCompteur()")
            txt_comm.ID = "txt_comm"
    Voici ma fonction javascript :
    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
    <script language="JavaScript">
    var maximum = 255;
     
    function fUpdCompteur() 
    {
    	var textbox = document.getElementById(<%= """"+txt_recl.ClientID+"""" %>);
    	var textbox2 = document.getElementById(<%= """"+txt_comm.ClientID+"""" %>);
        var contenu_txt = textbox.value;
        var contenu_txt2 = textbox2.value;
    	var longueur = maximum - parseInt(contenu_txt.length);
    	var longueur2 = maximum - parseInt(contenu_txt2.length);
    	if (longueur <= 0)
    	{
    		document.compteur1.value = 0;
    		contenu_txt = contenu_txt.substring (0,maximum);
        }
        else
    		document.compteur1.value = longueur;
    	if (longueur2 <= 0)
     
    	{
    	    document.compteur2.value = 0;
    	    contenu_txt2 = contenu_txt2.substring (0,maximum);
    	}
    	else
    	    document.compteur2.value = longueur2;
    }
    </script>
    Le problème restant à résoudre est le nom qu'utilisent l'asp pour nommer la textbox, et celui de la fonction javascript. Quand j'affiche la source côté client j'ai pour la fonction javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function fUpdCompteur() 
    {
    	var textbox = document.getElementById("ctl00_RestePage_txt_recl");
    et pour la textbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea name="ctl00$RestePage$txt_recl" rows="2" cols="20" id="ctl00_RestePage_txt_recl"
    Il me met une erreur javascript "Objet attendu"' ...

  8. #8
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    deja il y a un truc que je ne comprends pas, c'est comment se fait il qu'en faisant une textbox, ça te génères une balise textarea.
    tu as mis ta textbox en multiligne?
    Moi quand je fixe l'id de mon champ texte, je le récupères sans problème par la méthode que je t'ai indiqué...

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Oui textbox multiligne!

    Bon réponse trouvée :
    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
    <script language="JavaScript">
    var maximum = 255;
     
    function fUpdCompteur() 
    {
    	var textbox = document.getElementById(<%= """"+txt_recl.ClientID+"""" %>);
    	var textbox2 = document.getElementById(<%= """"+txt_comm.ClientID+"""" %>);
        var contenu_txt = textbox.value;
        var contenu_txt2 = textbox2.value;
    	var longueur = maximum - parseInt(contenu_txt.length);
    	var longueur2 = maximum - parseInt(contenu_txt2.length);
    	var cpt1 = document.getElementById("compteur1");
    	var cpt2 = document.getElementById("compteur2");
    	if (longueur <= 0)
    	{
    		cpt1.value = 0;
    		contenu_txt = contenu_txt.substring (0,maximum);
        }
        else
    		cpt1.value = longueur;
    	if (longueur2 <= 0)
     
    	{
    	    cpt2.value = 0;
    	    contenu_txt2 = contenu_txt2.substring (0,maximum);
    	}
    	else
    	    cpt2.value = longueur2;
    }
    </script>
    Javascript et les ID faut tout lui mâcher !

    Merci pour ton aide !

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

Discussions similaires

  1. [XL-2007] comment modifier les caractères d'une cellule
    Par VBBougrine dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2011, 10h05
  2. Réponses: 3
    Dernier message: 31/01/2007, 17h46
  3. Réponses: 5
    Dernier message: 01/11/2006, 16h04
  4. Réponses: 2
    Dernier message: 16/10/2006, 11h24
  5. [VB.Net] Comment récupérer les proprietes d'une image ?
    Par Cirdan Telemnar dans le forum VB.NET
    Réponses: 2
    Dernier message: 29/06/2006, 16h15

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