Пользовательский валидатор asp.net - PullRequest
1 голос
/ 02 марта 2012

Я выполняю проверку как на стороне клиента, так и на стороне сервера, clientide-jquery и serverside-asp.net Я использую специальные валидаторы для проверки числовых текстовых полей. Проблема в том, что есть несколько текстовых полей, которые должны проверять числовые данные и длину данных, а также цифры после десятичного числа. Так что я не могу создать общую функцию onservervalidate для всех из них их потребности в валидации различаются. Так что мне нужно использовать разные элементы управления проверкой для всех них ... я могу вызвать три разных метода на одном onservervalidate ... Любые предложения спасибо

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Проблема в том, что есть несколько текстовых полей, которые нужно проверить на числовые данные и длина данных, а также цифры после десятичной дроби.

Итак, у вас есть три потребности ...

  1. Должно иметь какое-то значение.
  2. Числовое значение
  3. Десятичное значение

Вот три в одном решении .. используя ReguarExpressionValidation

<asp:RegularExpressionValidator ID="ValExp" runat="server" 
ValidationExpression="^[0-9]+(\.[0-9]+)$" 
ControlToValidate="Controlname"></asp:RegularExpressionValidator>
1 голос
/ 02 марта 2012

Вы можете использовать класс регулярных выражений. В рамках этого вам нужна только одна функция для проверки ваших данных со всеми вашими требованиями.

класс regex - это мощный класс, в котором вы можете определять сложные шаблоны, которым должна соответствовать строка. это одна из моих более простых функций проверки регулярных выражений для моей страницы, которая возвращает логическое значение, если строка send в параметре (pass) соответствует шаблону.

    Public Function validatepass(ByVal pass As String) As Boolean
    Dim pattern As String = "^\S{6}\S*$"
    Dim MatchString As Match = Regex.Match(pass, pattern)
    If MatchString.Success Then
        Return True
     Else
        Return False
     End If
     End Function

это работает так: Dim pattern As String = "^ \ S {6} \ S * $" // в этой строке вы определяете шаблон, ^ - левый конец строки, а $ - правый конец \ S {6} соответствует первым 6 символам строки и принимает ЛЮБЫЕ символы кроме пробельных символов \ S * делает почти то же самое, но * означает, что это может быть любое количество символов (снова любые символы, кроме символов пробелов)

так эффективно этот шаблон не принимает пробелы и требует, чтобы длина строки была не менее 6 символов

для полного руководства вы должны прочитать это: http://www.codeproject.com/Articles/9099/The-30-Minute-Regex-Tutorial

и в этом случае шаблон регулярного выражения должен быть таким: ^ \ d {10}, \ d {2} $

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...