Главная » Языки программирования и собственно написание компьютерных программ

Проверка введенных пользователем числовых данных с помощью валидаторов в Visual Basic

Очевидно, что созданная в предыдущем разделе Web-страница имеет много недостатков, в частности если пользователь не заполнил текстовые поля, то получим сообщение «Ошибка сервера…». Между тем, следовало бы подсказать пользователю ввести что-либо в указанные поля. Кроме контроля пустых полей необходимо проверить, является ли введенное значение числом или символом (например, буквой). Для этих целей при разработке Windows-приложений мы использовали функцию IsNumeric, однако при разработке Web-приложений имеем среди элементов управления так называемые валидаторы, которые можно использовать в документах ASP.NET для осуществления любой проверки введенных данных. Валидаторы (их семь) можно увидеть в разделе Validation в панели элементов Toolbox.

В данной задаче мы будем совершенствовать Web-страницу, созданную нами в предыдущем примере. Выполним проверку, ввел ли пользователь хоть что-либо в текстовые поля, а также проверим тип введенных данных и выясним, соответствуют ли они типу данных Double.

Для этого запустим VB2010, в окне New Project выберем шаблон Empty ASP.NET Web Application, в поле Name укажем имя нового решения Valid1 и щелкнем на кнопке OK. Теперь добавим к текущему проекту Web-форму. Для этого в пункте меню Project выберем команду Add New Item, в появившемся окне укажем шаблон Web Form и щелкнем на кнопке Add. Далее на вкладке конструктора формы перетащим из панели элементов Toolbox необходимые нам два текстовых поля, командную кнопку и метку.

В данной задаче мы должны контролировать два текстовых поля, поэтому перенесем мышью из панели Toolbox соответственно два валидатора RequiredFieldValidator, проверяющих факт заполнения текстовых полей, и два валидатора CompareValidator для проверки, ввел пользователь числа или другие символы. Расположим их в форме.

Использование валидаторов на Web-странице

‘ Проверка введенных пользователем числовых данных с помощью

‘ валидаторов. Выполним проверку, ввел ли пользователь хоть что-либо
‘ в текстовые поля, а также проверим тип введенных данных,
‘ соответствуют ли они типу данных Double.
PublicClass WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)Handles Me.Load
Page.Title ="Введите два числа"
Label1.Text =Nothing
Label1.Width = 180
Button1.Text ="Найти сумму двух чисел"
Button1.Width = 180
TextBox1.Width = 180
TextBox2.Width = 180
RequiredFieldValidator1.ErrorMessage = "* Следует заполнить это текстовое поле"
RequiredFieldValidator1.ControlToValidate = "TextBox1"
RequiredFieldValidator2.ErrorMessage = "* Следует заполнить это текстовое поле"
RequiredFieldValidator2.ControlToValidate = "TextBox2"
CompareValidator1.ControlToValidate = "TextBox1"
CompareValidator1.Type = ValidationDataType.Double
CompareValidator1.Operator = ValidationCompareOperator.DataTypeCheck
CompareValidator1.ErrorMessage = "* Следует вводить числа"
CompareValidator2.ControlToValidate = "TextBox2"
CompareValidator2.Type = ValidationDataType.Double
CompareValidator2.Operator = ValidationCompareOperator.DataTypeCheck
CompareValidator2.ErrorMessage = "* Следует вводить числа"
End Sub
Private Sub Button1_Click(ByVal senderAs Object,ByVal e As System.EventArgs) Handles Button1.Click
Dim Z AsDouble = Convert.ToDouble(TextBox1.Text) + Convert.ToDouble(TextBox2.Text)
Label1.Text = "Сумма = " & Z
End Sub
EndClass

Как видно, при загрузке страницы В свойствах валидаторов RequiredField мы указали имена полей, подлежащих контролю факта их заполнения, а также привели текст сообщения, как реакцию на данную ошибку. В свойствах валидаторов compare также указали имена полей, подлежащих проверке типа данных DataTypeCheck, И текст сообщения.

Среди имеющихся на панели Toolbox валидаторов уместно здесь отметить ValidationSummary. Его можно поместить на какое-либо место на Web-страницу, где будут отображаться все сведения об ошибках от разных валидаторов. Причем чтобы сообщения не дублировались, можно указать в свойствах всех валидаторов Visible = False, но только свойство валидатора ValidationSummary.Visible = True.

Очень ценно то, что валидаторы обеспечивают проверку данных не на сервере, а на машине клиента. Это происходит следующим образом: браузер клиента запрашивает на Web-cepвepe соответствующую страницу; в ответ сервер отсылает на клиентский компьютер HTML-код, который содержит JavaScript с диагностикой, которую мы предусмотрели в vb-файле поддержки. В результате пользователь (клиент) не ощущает задержки во время диагностики данных, поскольку диагностика происходит на клиентском компьютере. Следует отметить то, что если бы мы сами писали валидаторы на языке JavaScript, то потребовалось бы написать гораздо больше строк программного кода.

Добавить комментарий

Ваш комментарий появится после модерации.