2013-04-05 8 views
12

मेरे पास मेरे टेक्स्ट में दो टेक्स्टबॉक्स और दो बटन हैं।सीएस पृष्ठ से आवश्यक फ़ील्ड सत्यापनकर्ता को सक्षम/अक्षम करें?

एक छुपा हुआ है और दूसरा प्रदर्शित होता है।

जब मैं Button1 पर क्लिक करता हूं, तो यह दो TextBox के डेटा को सहेज लेगा और RequiredFieldValidator द्वारा प्रत्येक टेक्स्टबॉक्स को सत्यापित करेगा।

फिर जब मैं Button2 क्लिक करें, यह सिर्फ खुद (Button2) छुपा देगा और छिपे हुए TextBox दिखाएगा।

TextBox दोनों RequiredFieldValidatorButton1 के इवेंट क्लिक के विरुद्ध मान्य है।

अब मेरी समस्या यह है कि जब मैं केवल प्रथम टेक्स्टबॉक्स में टेक्स्ट दर्ज करता हूं और सहेजें क्लिक करता हूं, तो बटन क्लिक छुपा फ़ील्ड के लिए आवश्यक फ़ील्ड को मान्य कर रहा है। जब मैं दिखा रहा हूं तो मैं केवल 2 टेक्स्टबॉक्स को मान्य करना चाहता हूं।

मैं इससे कैसे बच सकता हूं?

+0

ControlToValidate प्रॉपर्टी उस नियंत्रण के लिए है जिस पर नियंत्रण मान्य है या अपना कोड पोस्ट करें, हम आपकी मदद करेंगे। –

+0

क्या आप अपने कुछ कोड प्रदान कर सकते हैं? – lexeRoy

उत्तर

25

खैर आप कर सकते हैं सरल उपयोग RequiredFieldValidator की Enabled="false" संपत्ति।

आपका markup आपके प्रश्न के आधार पर ऐसा कुछ दिखाई देगा।

<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 इस तरह:

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

पर काम नहीं कर रहा है, यह आदमी को धन्यवाद –

+0

मुझे 'सत्यापन समूह' को संकेत देने के लिए धन्यवाद। –

+0

ने भी मेरी मदद की। धन्यवाद! –

4

ValidationGroup="group" संपत्ति का उपयोग button पर करें और उस पाठ को सत्यापन समूह असाइन करें जिस पर आप सत्यापन करना चाहते हैं। आशा है कि यह मदद मिलेगी

2

आप द्वितीयक बटन के लिए CausesValidation="false" निर्दिष्ट कर सकते हैं, यह कम वर्बोज़ और संभवतः भ्रामक है जब मान्यता समूह हैं एक भी क्षेत्र और बी के लिए ए) अत्यधिक) आप जब आगे नियंत्रण जोड़ने (मान्यता समूह बनाए रखने के लिए है हम बटन, सत्यापनकर्ता, क्षेत्र पर डाल कर और सत्यापन सारांश? यह मानक याद एक बहुत नहीं है, लेकिन कम व्यावहारिक जब संपादन।

+0

मैंने CausesValidation = "false" किया है लेकिन यह –

1

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

इस के पीछे कोड है:

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

इस कोशिश ..... ..

संबंधित मुद्दे