2009-08-25 10 views
0

Ich möchte die aktuelle Anzahl von Zeichen in einem Asp-Etikett anzeigen, die in ein Textfeld geschrieben werden, während der Benutzer gerade darin schreibt. Ich habe teilweise Artikel im Internet gelesen, aber keiner von ihnen funktioniert.Asp.net Zählen Anzahl der Zeichen, die in ein Textfeld geschrieben werden

Ich habe versucht,

<asp:TextBox ID="txtInput" runat="server" TextMode="MultiLine" onkeyup="Count(this.id)"></asp:TextBox> 
Sie müssen eine clientseitige Skriptsprache verwenden im Browser gehostet

und

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

aber ohne Erfolg ..

+0

Welche Artikel haben Sie gelesen? Welchen Code benutzen Sie, der nicht funktioniert? – BigBlondeViking

+0

Ich verwende den obigen Code, aber nichts wird in meinem Etikettentext angezeigt. Die Label-ID ist lbNrChar. – Blerta

Antwort

3

wir verwenden Javascript dieses Problem zu lösen:

document.getElementById (Wert) .value.length ...

Beachten Sie, dass, wenn die Steuerung ein Etikett ist, dann müssen Sie nicht die .innerHTML verwenden. Value-Eigenschaft für sie die Länge zu nehmen.

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

vs. wenn es ein anderes Textfeld ist, würden Sie .value verwenden.

auf der Serverseite können Sie es textbox.text.length von

2

mit - Im Grunde werden Sie JavaScript verwenden müssen.

This question Antworten ziemlich gut die hinter den Kulissen von dem, was Sie tun möchten. Sie müssen das clientseitige onKeyPress-Ereignis der Textfelder und Textbereiche behandeln, die Sie verfolgen möchten, und das Platzieren der Beschriftungs-, Skript- und Textsteuerelemente in einem ASP.NET-Benutzersteuerelement wäre kein schlechter Ansatz.

Bearbeiten: Da die verknüpfte Frage nicht weiter vertieft wird, benötigen Sie jQuery (und Sie werden feststellen, wie viel Spaß Web-UI-Programmierung kann wieder sein, wenn Sie es verwenden) und ich vermute this article wird helfen Du verstehst, wie man den Ball ins Rollen bringt.

0

ich nicht getestet haben, aber hoffentlich hilft es. Wenn Sie dies in einem Benutzersteuerelement tun, müssen Sie es ein wenig ändern, wenn Sie das gleiche Benutzersteuerelement mehr als einmal auf der Seite platzieren. (Im Prinzip müssten Sie das Javascript vom Codebehind registrieren).

In Ihrem Code hinter (Init oder laden oder irgendwo ähnlich):

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> 
Verwandte Themen