2013-04-05 24 views
12

Tôi có hai TextBox và hai nút trong trang của tôi.Bật/Tắt trình xác thực trường bắt buộc từ trang cs?

Một mục bị ẩn và một mục khác được hiển thị.

Khi tôi nhấp vào Button1, nó sẽ lưu dữ liệu của hai số TextBox và sẽ xác thực mỗi Hộp văn bản theo số RequiredFieldValidator.

Sau đó, khi tôi nhấp vào Button2, nó sẽ chỉ ẩn chính nó (Button2) và sẽ hiển thị ẩn TextBox.

Cả hai TextBox đều có RequiredFieldValidator xác thực với Button1 nhấp chuột của sự kiện.

Bây giờ vấn đề của tôi là khi tôi chỉ cần nhập văn bản vào Hộp văn bản đầu tiên và nhấp vào lưu, nhấp vào nút đang xác thực trường bắt buộc cho trường ẩn. Tôi chỉ muốn xác thực 2 hộp văn bản khi nó đang hiển thị.

Làm cách nào để tránh điều này?

+0

Thuộc tính ControlToValidate là để kiểm soát xác thực hoặc đăng mã của bạn, chúng tôi sẽ giúp bạn. –

+0

Bạn có thể cung cấp một số mã của mình không? – lexeRoy

Trả lời

25

Vâng, bạn có thể sử dụng đơn giản Enabled="false" tài sản của RequiredFieldValidator.

của bạnsẽ trông giống như thế này dựa trên Câu hỏi của bạn.

<asp:TextBox runat="server" ID="tb1"></asp:TextBox> 
<asp:RequiredFieldValidator runat="server" ID="rfv1" ControlToValidate="tb1" ErrorMessage="*" ValidationGroup="gvSave"> 
</asp:RequiredFieldValidator> 

<asp:TextBox runat="server" ID="tb2" Visible="false"></asp:TextBox> 
<asp:RequiredFieldValidator runat="server" ID="rfv2" ControlToValidate="tb2" ErrorMessage="*" Enabled="false" ValidationGroup="gvSave"> 
</asp:RequiredFieldValidator> 

<asp:Button runat="server" ID="btn1" Text="Save" onclick="btn1_Click" ValidationGroup="gvSave"/> 
<asp:Button runat="server" ID="btn2" Text="Show" onclick="btn2_Click" /> 

codebehind của bạn như thế này:

protected void btn2_Click(object sender, EventArgs e) 
{ 
    tb2.Visible = true; 
    rfv2.Enabled = true; // Enables the second requiredfieldvalidator 
} 

protected void btn1_Click(object sender, EventArgs e) 
{ 
    // your Saving code here 
} 
+2

Nó đã giúp người đàn ông nhờ –

+0

Cảm ơn bạn đã gợi ý 'ValidationGroup' cho tôi. –

+0

Giúp tôi. Cảm ơn! –

4

sử dụng thuộc tính ValidationGroup="group" để button và chỉ định nhóm xác thực cho văn bản mà bạn muốn xác thực. Hy vọng nó sẽ giúp

2

Bạn có thể chỉ định CausesValidation="false" cho nút phụ, điều này ít tiết và có khả năng gây nhầm lẫn khi nhóm xác thực là A) quá mức cho một trường và B) bạn phải duy trì nhóm xác thực khi thêm điều khiển bổ sung (nào chúng ta đặt nó vào nút, validator, lĩnh vực này tóm tắt xác nhận? đó không phải là rất nhiều những nhớ tiêu chuẩn, nhưng ít thực tế khi chỉnh sửa.

+0

Tôi đã làm các CausesValidation = "sai" nhưng nó không hoạt động –

1

Đây là ASPX:

    <td align="right"> 
          Cut Type : 
         </td> 
         <td class="required"> 
          <telerik:RadComboBox ID="cmbCutType" runat="server" MaxHeight="200px" Width="200px" 
           Filter="Contains" EnableLoadOnDemand="true" EmptyMessage="Select Cut Type" OnSelectedIndexChanged="cmbCutType_SelectedIndexChanged" 
           AutoPostBack="true"> 
          </telerik:RadComboBox> 
          <asp:RequiredFieldValidator runat="server" ID="rfvCutType" Display="None" ControlToValidate="cmbCutType" InitialValue="" 
           ValidationGroup="Save" ErrorMessage="Cut Type is Mandatory" 
           ForeColor="Red"></asp:RequiredFieldValidator> 
          <ajaxToolkit:ValidatorCalloutExtender ID="vceCutType" TargetControlID="rfvCutType" 
           runat="server"> 
          </ajaxToolkit:ValidatorCalloutExtender> 
         </td> 

Đây là mã sau:

protected void btn2_Click(object sender, EventArgs e) 
{ 
    rfvCutType.IsValid = false; 
} 

thử này ..... ..

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