Разрешение только определенных символов в текстовом поле (C#)

Кристиан Венц

Скачать в формате PDF

ASP.NET средства управления проверкой могут гарантировать, что в вводе пользователем разрешены только определенные символы. Однако это по-прежнему не мешает пользователям вводить недопустимые символы и пытаться отправить форму.

Обзор

ASP.NET средства управления проверкой могут гарантировать, что в вводе пользователем разрешены только определенные символы. Однако это по-прежнему не мешает пользователям вводить недопустимые символы и пытаться отправить форму.

Шаги

Набор средств управления AJAX ASP.NET содержит FilteredTextBox элемент управления, расширяющий текстовое поле. После активации в поле может быть введен только определенный набор символов.

Для работы, как обычно, сначала требуется ASP.NET AJAX ScriptManager, который загружает библиотеки JavaScript, также используемые набором средств управления ASP.NET AJAX.

<asp:ScriptManager ID="asm" runat="server" />

Затем нам нужно текстовое поле:

Numbers only: <asp:TextBox ID="TextBox1" runat="server" />

Наконец, FilteredTextBoxExtender элемент управления заботится об ограничении символов, которые пользователь может вводить. Сначала задайте атрибут TargetControlID на ID элементе управления TextBox. Затем выберите одно из доступных FilterType значений:

  • Custom По умолчанию; Необходимо указать список допустимых символов
  • LowercaseLetters только строчные буквы
  • Numbers только цифры
  • UppercaseLetters Только прописные буквы

Если используется Custom FilterType, свойство ValidChars должно быть задано и предоставлять список символов, которые могут быть введены. Кстати: если вы пытаетесь вставить текст в текстовое поле, все недопустимые символы удаляются.

Ниже приведена разметка для FilteredTextBoxExtender элемента управления, который разрешает только цифры (то, что также возможно с FilterType="Numbers"):

<ajaxToolkit:FilteredTextBoxExtender ID="ftbe" runat="server"
 TargetControlID="TextBox1" ValidChars="1234567890" />

Запустите страницу и попробуйте ввести букву, если JavaScript включен, она не будет работать; Однако на странице отображаются цифры. Однако обратите внимание, что защита FilteredTextBox не является непробиваемой: если JavaScript включен, любые данные могут быть введены в текстовом поле, следовательно, необходимо использовать дополнительные средства проверки, т.е. элементы управления проверки ASP.NET.

Можно вводить только цифры

Можно ввести только цифры (щелкните, чтобы просмотреть изображение полного размера)