Как отобразить оставшиеся символы текстового поля в метке в C#?
Я не уверен, что у меня есть последний бит, верно? Я изменил максимальную длину текстового поля на 140. Я не могу использовать TextLength
, Помогите, пожалуйста?! У меня есть это до сих пор:
protected void textBox_TextChanged(object sender, EventArgs e)
{
characterCountLabel.Text = textBox.MaxLength - textBox.TextLength;
}
2 ответа
characterCountLabel.Text
в строковом формате. Поэтому вы можете преобразовать его, прежде чем устанавливать его значение следующим образом:
protected void textBox_TextChanged(object sender, EventArgs e)
{
characterCountLabel.Text = (textBox.MaxLength - textBox.Text.Length).ToString();
}
Я думаю, что вы пытаетесь отобразить оставшиеся символы, которые пользователь может ввести в ваше текстовое поле? Я полагаю, что вы можете установить ограничение как константу следующим образом:
protected void textBox_TextChanged(object sender, EventArgs e)
{
characterCountLabel.Text = (140 - textBox.Text.Length).ToString(); // in here 140 is your limit
}
Если вы используете ASP.NET в C#. Не ограничивайте себя в использовании JavaScript, как в этой ссылке
Я думаю, что это будет лучший ответ...
Код заголовка:
<script language="javascript" type="text/javascript">
function getCountDown()
{
//Get the Textbox control
var textField = document.getElementById("<%#TextBox1.ClientID %>");
//Do the math of chars left and pass the value to the label
document.getElementById('<%#Label1.ClientID %>').innerHTML = textField.maxLength - textField.value.length;
return false;
}
</script>
ASP-код:
<asp:TextBox ID="TextBox1" runat="server" MaxLength="729" Height="80px"
Width="591px" onkeyup="getCountDown();" ClientIDMode="Static"></asp:TextBox>
<asp:Label ID="Label1" runat="server" Text="" ClientIDMode="Static"></asp:Label>
Важно установить TextBox
а также Label
свойство управления как ClientIDMode="Static"
в противном случае имя элемента управления не будет найдено в JavaScript.
Код CS:
protected void Page_Load(object sender, EventArgs e)
{
Page.Header.DataBind();
}
Вот и все SingleLine
Текстовое окно.
Теперь для MultiLine
TextBox
Вы должны добавить это на свой Page_Load()
Итак maxLength
принимает TextBox1.MaxLength
значение.:
this.TextBox1.Attributes.Add("maxLength", TextBox1.MaxLength.ToString());
Так же MaxLength
собственность TextBox
не работает когда включен Multiline
режим, поэтому вам нужно добавить на свой JavaScript getCountDown()
функционируют следующие строки:
// Check if user is entering more than the limit of characters
if (textField.value.length >= textField.maxLength) {
// Cut extra text
document.getElementById("<%#TextBox1.ClientID %>").innerHTML = textField.value.substring(0, textField.maxLength);
}
добавить их сразу после var textField = document.getElementById("<%#TextBox1.ClientID %>");
линия. Это сделано для того, чтобы пользователь не мог вводить больше символов, чем MaxLength
значение.
Pablo