2011-07-06 10 views
5

मेरे पास ASP.NET पृष्ठ में कुछ अनुभाग हैं और उन्हें अलग से सत्यापित करने की आवश्यकता है।सत्यापन प्रमाणीकरण काम नहीं कर रहा है जब सत्यापन समूह निर्दिष्ट किया गया है

प्रत्येक अनुभाग में इसका अपना सत्यापन सारांश अनुभाग है इसलिए मैंने ValidationGroup विशेषता के साथ ValidationSummary टैग का उपयोग करने के बारे में सोचा लेकिन यह काम नहीं करता है।

निम्नलिखित कोड काम करता है लेकिन पेज में सभी नियंत्रण की पुष्टि करता है: एक ओर जहां निम्नलिखित (कोई सत्यापन, प्रस्तुत मैं सिर्फ विज़ार्ड में अगले पृष्ठ पर जाने पर) काम नहीं करता

<asp:TextBox ID="field1" runat="server" TabIndex="1" MaxLength="20" /> 
<asp:RequiredFieldValidator ID="field1RequiredValidator" ControlToValidate="field1" runat="server" 
Display="None" ErrorMessage="mandatory 1" /> 

<asp:TextBox ID="field2" runat="server" TabIndex="2" MaxLength="20" /> 
<asp:RequiredFieldValidator ID="field2RequiredValidator" ControlToValidate="field2" runat="server" 
Display="None" ErrorMessage="mandatory 2" /> 

.... 

<asp:ValidationSummary ID="validationSummary" HeaderText="Sumary" runat="server" /> 

:

<asp:TextBox ID="field1" runat="server" TabIndex="1" MaxLength="20" /> 
<asp:RequiredFieldValidator ID="field1RequiredValidator" ControlToValidate="field1" runat="server" 
Display="None" ErrorMessage="mandatory 1" ValidationGroup="xxxx" /> 

<asp:TextBox ID="field2" runat="server" TabIndex="2" MaxLength="20" /> 
<asp:RequiredFieldValidator ID="field2RequiredValidator" ControlToValidate="field2" runat="server" 
Display="None" ErrorMessage="mandatory 2" ValidationGroup="xxxx" /> 

.... 

<asp:ValidationSummary ID="validationSummary" HeaderText="Sumary" runat="server" ValidationGroup="xxxx" /> 

मुझे यहां क्या याद आ रही है? क्या अतिरिक्त सेटअप की आवश्यकता है या कुछ और?

उत्तर

15

ASP.NET में डिफ़ॉल्ट व्यवहार है जो उपयोगकर्ता द्वारा एक बटन नहीं ValidationGroup निर्दिष्ट है कि क्लिक करता है (और true को CausesValidation सेट है), सभी मान्यता नियंत्रण है कि एक मान्यता समूह से संबंधित नहीं है मान्य कर रहे हैं।

इसलिए, किसी विशिष्ट समूह को सत्यापित करने के लिए, आपको ValidationGroup बटन की प्रॉपर्टी सेट करने की आवश्यकता है जो सत्यापन (और संभवतः CausesValidation संपत्ति) का कारण बनाना चाहिए।

विवरण और उदाहरण के लिए MSDN documentation for Button.ValidationGroup देखें।

संपादित करें: यदि आपको पृष्ठ पर सभी समूहों को सत्यापित करने की आवश्यकता है, तो सबसे आसान तरीका निश्चित रूप से सत्यापन समूहों का उपयोग नहीं करना है। लेकिन आप केवल कुछ (लेकिन एक से अधिक) समूहों को मान्य करने के लिए चाहते हैं, तो आप फोन करके सर्वर (बटन को क्लिक हैंडलर में) पर यह कर सकते हैं:

Validate("groupOne"); 
Validate("groupTwo"); 
// ... 

ध्यान दें कि यह ग्राहक ट्रिगर नहीं करेगा -साइड सत्यापन। एक बटन पर एकाधिक सत्यापन समूहों को ट्रिगर करने के बारे में चर्चा के लिए उदाहरण के लिए this post देखें।

संपादित करें: मुझे a blog post पता चला है कि कोड के साथ पूर्ण ASP.NET के लिए पुन: प्रयोज्य "एकाधिक सत्यापन समूह बटन" कैसे बनाया जाए। कोशिश नहीं की है, लेकिन यह आशाजनक लग रहा है।

+0

हे ... यह काम करता है, मुझे नहीं पता था कि मुझे इसे बटन पर भी निर्दिष्ट करना था। धन्यवाद! लेकिन अब मेरे पास एक और मुद्दा है। मेरे पास मेरे पृष्ठ में अधिक सत्यापन समूह हैं। मैं उन सभी को केवल एक सबमिट बटन के साथ कैसे ट्रिगर करूं? – user0971832

+0

यदि आपको एक बटन से सभी सत्यापन ट्रिगर करना है तो आप उनके लिए अलग सत्यापन समूह क्यों निर्दिष्ट करते हैं। – rahularyansharma

+1

@rahularyansharma: क्योंकि मेरा पृष्ठ खंडों में बांटा गया है। प्रत्येक अनुभाग में अपना स्वयं का प्रमाणीकरण सारांश होता है (यानी त्रुटि सारांश उसी खंड में प्रदर्शित होना चाहिए जो त्रुटि में हैं) इसलिए मुझे उन्हें समूहित करने की आवश्यकता है। लेकिन मुझे बस एक सबमिट बटन से ट्रिगर करने की ज़रूरत है। – user0971832