2009-08-25 5 views
0

Je souhaite être en mesure d'afficher le nombre actuel de caractères, dans une étiquette ASP, écrits dans une zone de texte pendant que l'utilisateur y écrit actuellement. J'ai lu des articles partiels sur le web mais aucun d'entre eux ne fonctionne.Asp.net Comptage Nombre de caractères en cours d'écriture dans une zone de texte

J'ai essayé d'utiliser

<asp:TextBox ID="txtInput" runat="server" TextMode="MultiLine" onkeyup="Count(this.id)"></asp:TextBox> 

et

<script type="text/javascript"> 
     function Count(x) { 
      document.getElementById(lbNrChar).value = document.getElementById(x).value.length; 
     } 
</script> 

mais sans succès ..

+0

Quels articles avez-vous lu? Quel code utilisez-vous qui ne fonctionne pas? – BigBlondeViking

+0

J'utilise le code ci-dessus mais rien n'est affiché dans mon texte d'étiquette. L'identifiant de l'étiquette est lbNrChar. – Blerta

Répondre

3

nous avons utilisé Javascript pour résoudre ce:

document.getElementById (valeur) .value.length ...

Notez que si le contrôle est une étiquette alors vous devez utiliser le .innerHTML pas. valeur de la propriété pour qu'il prenne la longueur.

document.getElementById("Label1").innerHTML = 
document.getElementById("TextBox1").value.length; 

vs si c'est une autre zone de texte que vous utiliseriez .value.

du côté du serveur, vous pouvez l'obtenir par textbox.text.length

2

Vous aurez besoin d'utiliser un langage de script côté client hébergé dans le navigateur - fondamentalement, vous devrez utiliser JavaScript.

This question répond assez bien les coulisses de ce que vous voulez faire. Vous devrez gérer l'événement côté client onKeyPress des zones de texte et des zones de texte que vous souhaitez suivre, et placer les contrôles d'étiquette, de script et de texte dans un contrôle utilisateur ASP.NET ne serait pas une mauvaise approche. Edit: puisque la question liée ne va pas plus loin, vous aurez besoin de jQuery (et vous vous rendrez compte à quel point la programmation de l'interface web peut être à nouveau quand vous commencez à l'utiliser) et je pense que this article aidera vous comprenez comment lancer le bal.

0

Je n'ai pas testé mais nous espérons qu'il aide. Si vous le faites dans un UserControl, vous devrez le modifier un peu si vous placez le même contrôle utilisateur sur la page plus d'une fois. (Fondamentalement, vous devez enregistrer le javascript à partir du codebehind).

Dans votre code derrière (ou Init charge ou quelque part comme ça):

txtInput.Attributes["onkeydown"] = String.Format("count('{0}')", txtInput.ClientID); 

ASPX

<asp:TextBox id="txtInput" runat="server" TextMode="MultiLine"/> 
Count: <span id="spanDisplay"></span> 

<script type="text/javascript"> 
    function count(clientId) { 
    var txtInput = document.getElementById(clientId); 
    var spanDisplay = document.getElementById('spanDisplay'); 
    spanDisplay.innerHTML = txtInput.value.length; 
    } 
</script> 
Questions connexes