2015-03-05 20 views
5

Chcę, aby użytkownik dokonał prawidłowego wyboru w DropDownList, ale nie chcę prezentować żadnego wyboru jako domyślnego, więc domyślną wybraną wartością jest -- Select --. Używam RegularExpressionValidator, aby akceptować tylko wybrane wartości, które zawierają literalny przecinek (ponieważ prawidłowe elementy mają format LastName, FirstName).Jak sprawdzić poprawność wybranej wartości w DropDownList?

Jestem jednak zdumiony, jak uzyskać walidator, aby wyszukać wybraną wartość! Naprawdę wolałbym NIE uczynić tego sprawdzania na poziomie serwera, a jeśli to możliwe, chciałbym, aby był tak prosty jak Regex Validator.

Oto kod:

<asp:DropDownList ID="ddNames" runat="server"> 
</asp:DropDownList> 
&nbsp; 
<asp:RegularExpressionValidator ID="RegexValidator" runat="server" 
    ControlToValidate="ddNames" ValidationExpression=".*\,.*" 
    ErrorMessage="Select a Valid User"> 
</asp:RegularExpressionValidator> 

Wartości rozwijane są:

-- Select -- 
Smith, John B 
Jones, Bill 
Wilkinson, Harmony 
Hull, Cordell 
Hill, Faith 

Czy istnieje sposób, aby celować walidatora w SelectedValue? Jak pokazano, Validator wydaje się nie widzieć żadnej z wartości w formancie.

+0

Czy można odwołać się do walidatora po przesłaniu formularza? – sln

+0

czy próbowałeś użyć '' – MethodMan

+0

A może, kiedy użytkownik je przesyła (za pomocą przycisku?), Możesz uzyskać wybrany element, a następnie ustawić wybrany element. W przypadku elementów sterujących, które zazwyczaj wyłączają zdarzenia. – sln

Odpowiedz

3

Czy mam rację, że chcesz zmusić użytkownika do dokonania wyboru, a ten wybór powinien pasować do twojego regex?
Jeśli tak, można łatwo dodać klasę RequiredFiledValidator do kontroli dropdown, stanowią własność InitialValue niej równą swojej wartości przedmiotu -- Select -- więc użytkownik będzie musiał wybrać coś nie równy -- Select --, a wartość ta zostanie zatwierdzona przez RegularExpressionValidator sterowanie.

Od MSDN:

Walidacja nie tylko wtedy, gdy wartość związanych meczów kontrolnych wejściowych to InitialValue na utratę ostrości. Łańcuchy we właściwościach InitialValue i kontroli wprowadzania są przycinane w celu usunięcia dodatkowych spacji przed i za ciągiem przed wykonaniem sprawdzania poprawności.

Walidacja kończy się sukcesem, jeśli kontrola wprowadzania danych jest pusta. Jeśli dla skojarzonego kontrolera wejściowego wymagana jest wartość, należy użyć kontrolki RequiredFieldValidator oprócz kontrolki .

Ponadto należy zwrócić uwagę na klasę RegularExpressionValidator, że

Zarówno po stronie serwera i walidacja po stronie klienta są wykonywane chyba przeglądarka nie obsługuje sprawdzanie poprawności po stronie klienta lub walidacji po stronie klienta jest jawnie wyłączone (ustawiając właściwość EnableClientScript na false).

więc kod powinien być mniej więcej tak:

<asp:DropDownList ID="ddNames" runat="server"> 
</asp:DropDownList> 
&nbsp; 
<asp:RegularExpressionValidator ID="RegexValidator" runat="server" 
    ControlToValidate="ddNames" ValidationExpression=".*\,.*" 
    ErrorMessage="Select a Valid User" /> 
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
    ErrorMessage="*" ControlToValidate="ddNames" 
InitialValue="-- Select --" /> 
+0

O ile mogę stwierdzić, RegViar Validator nie wydaje się działać w celu sprawdzenia SelectedValue kontroli DropDownList. Moje pytanie ma na celu wypalenie możliwego sposobu, aby to zrobić, jeśli istnieje. Spodziewałbym się, że taka odpowiedź pojawi się już teraz, jeśli taka istnieje. Dziękuję za przemyślaną odpowiedź. – Cyberherbalist

2

można użyć RequiredFieldValidator.

 <asp:DropDownList ID="ddNames" runat="server"> 
     </asp:DropDownList> 

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
ErrorMessage="Please select" ControlToValidate="ddNames" 
InitialValue="-- Select --"></asp:RequiredFieldValidator> 
+0

To działa, i jest to sposób w jaki zdecydowałem się to zrobić. Nadal chciałbym wiedzieć, jak korzystać z funkcji RegularExpressionValidator do wykonania zadania, ale, och, dobrze. – Cyberherbalist

+0

Funkcja RegularExpressionValidator zostanie użyta do sprawdzenia poprawności niektórych wzorów. –

+0

Tak, wiem o tym. Moje pytanie powinno to wyjaśnić. Ale funkcja RegularExpressionValidator wydaje się nie być w stanie dopasować do wzorca względem wybranej wartości DropDownList. Moje pytanie ma na celu sprawdzenie, czy ktoś znalazł sposób na sprawdzenie poprawności Regex dla wybranej wartości. – Cyberherbalist

Powiązane problemy