2015-03-05 18 views
5

Tôi muốn người dùng thực hiện lựa chọn hợp lệ trong một DropDownList, nhưng tôi không muốn hiển thị bất kỳ lựa chọn nào làm mặc định để giá trị được chọn mặc định là -- Select --. Tôi đang sử dụng một số RegularExpressionValidator để chỉ chấp nhận các giá trị đã chọn có chứa dấu phẩy bằng chữ (vì các mục hợp lệ được định dạng LastName, FirstName).Làm cách nào để xác thực giá trị đã chọn trong danh sách thả xuống?

Tuy nhiên, tôi bị lúng túng khi làm cách nào để trình xác thực tìm kiếm giá trị đã chọn! Tôi thực sự không muốn thực hiện việc xác nhận mức máy chủ này và nếu có thể, tôi muốn giữ cho nó đơn giản như một Trình xác thực Regex.

Dưới đây là các mã:

<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> 

Các giá trị thả xuống là:

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

Có cách nào để nhắm validator tại SelectedValue? Như được hiển thị, Trình xác thực dường như không thấy bất kỳ giá trị nào trong điều khiển.

+0

Bạn có thể gọi trình xác thực khi biểu mẫu được gửi không? – sln

+0

bạn đã thử sử dụng '' – MethodMan

+0

Hoặc có thể, khi người dùng gửi nó (qua nút?) Bạn có thể nhận được mục đã chọn, sau đó đặt mục đã chọn. Đối với các điều khiển, thường đặt ra các sự kiện. – sln

Trả lời

3

Tôi có đúng là bạn muốn buộc người dùng thực hiện lựa chọn và lựa chọn đó phải phù hợp với regex của bạn không?
Nếu vậy, bạn có thể dễ dàng thêm lớp RequiredFiledValidator vào điều khiển dropdown của mình, cung cấp thuộc tính InitialValue cho giá trị -- Select -- mục của bạn để người dùng bị buộc phải chọn thứ gì đó không bằng -- Select -- và giá trị này sẽ được xác thực qua RegularExpressionValidator kiểm soát.

Từ MSDN:

Validation thất bại chỉ khi giá trị của các trận đấu kiểm soát đầu vào liên quan đến InitialValue này khi mất tập trung. Các chuỗi trong cả thuộc tính InitialValue và điều khiển đầu vào được cắt bớt để loại bỏ các khoảng trống thừa trước và sau chuỗi trước khi xác thực được thực hiện.

Xác thực thành công nếu điều khiển đầu vào trống. Nếu giá trị được yêu cầu cho điều khiển nhập được liên kết, hãy sử dụng điều khiển RequiredFieldValidator ngoài điều khiển RegularExpressionValidator.

Ngoài ra bạn nên lưu ý cho một lớp RegularExpressionValidator, mà

Cả server-side và xác nhận client-side được thực hiện trừ khi trình duyệt không hỗ trợ xác nhận client-side hoặc xác nhận client-side bị vô hiệu hóa một cách rõ ràng (bằng cách đặt thuộc tính EnableClientScript thành sai).

Vì vậy, mã của bạn nên được một cái gì đó như thế này:

<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

Theo như tôi có thể nói, Regex Validator dường như không hoạt động để xác nhận SelectedValue của một điều khiển DropDownList. Câu hỏi của tôi là để hút ra một cách có thể để làm như vậy, nếu nó tồn tại. Tôi đã có thể mong đợi một câu trả lời như vậy đã xuất hiện ngay bây giờ, nếu có tồn tại. Cảm ơn câu trả lời của bạn. – Cyberherbalist

2

bạn có thể sử dụng 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

Điều này không có tác dụng và là cách cuối cùng tôi chọn làm. Tôi vẫn muốn biết làm thế nào để sử dụng một RegularExpressionValidator để làm công việc, nhưng, oh, tốt. – Cyberherbalist

+0

RegularExpressionValidator sẽ được sử dụng để xác thực một số mẫu. –

+0

Vâng, tôi biết điều này. Câu hỏi của tôi nên làm rõ điều này. Nhưng RegularExpressionValidator dường như không có khả năng khớp mẫu với Giá trị đã chọn của DropDownList. Câu hỏi của tôi là để xem liệu ai đó đã tìm thấy một cách để làm cho một validator Regex xác nhận giá trị đã chọn. – Cyberherbalist

Các vấn đề liên quan