2011-10-14 12 views
5

मेरे पास ShowMessageBox="True" और कई सत्यापनकर्ताओं के साथ एकाधिक सत्यापन सारांश सेटअप के साथ एक asp.net पृष्ठ है। मैंने ऐसी परिस्थिति में भाग लिया है जब प्रमाणीकरण वैधता सारांश सही तरीके से प्रदर्शित होता है लेकिन फिर अगला क्लिक जो सामान्य रूप से पृष्ठ के पोस्टबैक को ट्रिगर करता है, वह पोस्टबैक ट्रिगर नहीं करता है। तो चरण इस तरह दिखते हैं:प्रमाणीकरण के बाद मेरा फॉर्म वापस क्यों नहीं पोस्ट करेगा?

  1. सत्यापन बटन ट्रिगर करने वाले बटन पर क्लिक करें।
  2. प्रमाणीकरण विफल रहता है और विफलता संदेश वाला संदेशबॉक्स प्रदर्शित होता है।
  3. एक अलग बटन पर क्लिक करें जो मान्य नहीं है लेकिन पोस्टबैक ट्रिगर करना चाहिए कुछ भी नहीं होता
  4. चरण 3 के रूप में उसी बटन पर क्लिक करें, फिर से पोस्टबैक अपेक्षित होता है।

इस व्यवहार का कारण क्या हो सकता है?

संपादित करें: सत्यापन निम्न तरीके से किया जा रहा था।

<asp:Button runat="server" id="btn" onClientClick="return DoValidation();" /> 

जावास्क्रिप्ट में: एएसपी पेज

function DoValidation() { 
    if (!Page_ClientValidate('group1')) 
     return false; 
    if (!Page_ClientValidate('group2')) 
     return false; 

    return true; 
} 
+0

आपको एक अच्छा उत्तर प्राप्त करने के लिए शायद कुछ कोड पोस्ट करने की आवश्यकता होगी। –

+0

दूसरे बटन के लिए कारणों की वजह से कारणों को गलत करने की कोशिश करें? – IrishChieftain

+0

मैंने इसे गलत पर सेट करने का प्रयास किया और एक ही परिणाम मिला। यह पृष्ठ काफी जटिल है, मुझे उम्मीद है कि किसी ने भी इसी तरह की स्थिति देखी होगी। – Mykroft

उत्तर

13

इस पर काम कर और डीबगर मैं अंत में है कि करने के लिए संपादित में वर्णित तरह से जब आप सत्यापन कर पता चला की सावधान उपयोग करने के बाद सवाल यह है कि एक बुलियन विफलता पर सेट होता है जो पृष्ठ के अगले पोस्टबैक को पार करने से रोकता है। मेरा मानना ​​है कि यह तब किया जाता है जब स्पष्ट रूप से सत्यापन किया जा रहा है, जैसा कि मैं यहां कर रहा हूं। इस तरह दिखने के लिए ऊपर वर्णित जावास्क्रिप्ट को बदलना:

function DoValidation() { 
    if (!Page_ClientValidate('group1')) { 
     Page_BlockSubmit = false; 
     return false; 
    } 
    if (!Page_ClientValidate('group2')) { 
     Page_BlockSubmit = false; 
     return false; 
    } 

    return true; 
} 

समस्या को दूर करने का कारण बनता है। उम्मीद है कि इससे अगले व्यक्ति की मदद मिलेगी जो मैंने वही गलती की है।

+0

डीबगर समय मेरे लिए बचाया गया। धन्यवाद! –

+0

मेरी इच्छा है कि मैंने एक घंटे पहले आपका जवाब देखा! – clamchoda

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