कहें कि आपके पास ASP.NET ASP की तरह कुछ है: विवरण दृश्य डेटाबेस में एक रिकॉर्ड दिखाने और संपादित करने के लिए।क्या "सफलता संदेश" करने के लिए ASP.NET में कोई मूल तरीका है?
त्रुटि मामलों को रिकॉर्ड करना आसान है ... आप सत्यापन और सत्यापन सारांश जोड़ते हैं। जब आपका अपडेट फॉर्म सत्यापन में विफल रहता है तो यह स्वाभाविक रूप से शोर बनाता है: यह सत्यापन संदेश और/या सत्यापन सारांश दिखाता है। पीछे एक भी कोड की आवश्यकता नहीं है।
लेकिन फिर, आप सत्यापन पास करते हैं, और यह आपके अपडेट को पूरी तरह से चुपचाप बनाता है। कोई समझ नहीं है कि कुछ भी हुआ, और कोड-बैक के बिना सफलता संदेश बनाने के लिए कोई डिफ़ॉल्ट सेटिंग प्रतीत नहीं होती है।
लेकिन, यहां तक कि कोड-पीछे भी उलझन में हैं। सफलता संदेश को किस घटना को दिखाना चाहिए? onItemUpdate, है ना? ठीक है, लेकिन फिर मान लें कि आप एक और बदलाव करते हैं और सत्यापन त्रुटि प्राप्त करते हैं? आपका सफलता संदेश रहता है। मैं एक ऐसी घटना नहीं ढूंढ पा रहा था जो वैधता त्रुटि होने पर मौजूदा सफलता संदेश को विश्वसनीय रूप से बंद कर दे।
यह वेब विकास 101 होना चाहिए! वो इतना मुस्किल क्यों है?
संपादित करें:
किसी ItemCommand घटना ... मैं यह और कई अन्य घटनाओं की कोशिश की का उपयोग कर सुझाव दिया है, लेकिन यह सफलता संदेश बस गायब नहीं होंगे। यहां कुछ कोड है।
ASP.NET
<label id="successMessage" class="successMessage" runat="server"></label>
में मेरा संदेश और मेरे DataView टैग (सरलीकृत):
<asp:DetailsView
Id="EditClient"
DataKeyNames="LicenseID"
DataSourceID="MySource"
runat="server"
OnItemUpdated="SuccessfulClientUpdate"
OnItemCommand="ClearMessages">
और, मेरी कोड-पीछे:
protected void SuccessfulClientUpdate(object sender, DetailsViewUpdatedEventArgs e)
{
successMessage.InnerText = string.Format("Your changes were saved.");
successMessage.Visible = true;
}
protected void ClearMessages(object sender, DetailsViewCommandEventArgs e)
{
successMessage.InnerText = string.Empty;
successMessage.Visible = false;
}
एक बार जब मैं करता हूँ सफल अपडेट, हालांकि, ऐसा लगता है कि वह संदेश गायब नहीं हुआ है, यहां तक कि सत्यापन विफल भी नहीं हुआ है।
2 संपादित करें:
बस स्पष्ट होना है कि मैं Page_Load में ClearMessages कोड डालने की कोशिश किया था चाहते हैं। हालांकि, कुछ भी ऐसा नहीं लगता है जब मैं एक सत्यापन त्रुटि के साथ दूसरी बार अद्यतन मारा जब मैसेज लेबल गायब हो जाता है। क्या कोई अन्य समस्या निवारण युक्तियाँ सुझा सकता है?
पवित्र बकवास, यह एक लमर वास्तविकता है जो मैंने कभी कल्पना की थी, लेकिन एक शानदार जवाब। मुझे लगता है कि मैं हर बार सर्वर पर वापस जाने के लिए सत्यापन को भी मजबूर कर सकता हूं। तुम एक चैंपियन हो – danieltalsky
एक और संकेत जो उपयोगी हो सकता है: आप अपने मास्टर पेज में उपरोक्त सभी चीजें कर सकते हैं (मान लें कि आप एएसपी.नेट 2.0 का उपयोग करते हैं)। यही है, आप सामग्री के ऊपर सीधे div नियंत्रण रख सकते हैं, और वहां जानकारी संदेश प्रदर्शित कर सकते हैं (जारी ...) –
आप मास्टरपेज-व्युत्पन्न ऑब्जेक्ट में एक SetMessage() सार्वजनिक विधि का पर्दाफाश करते हैं और आपको "जानकारी संदेश" समर्थन मिलता है '((माईमास्टर) पेज.मास्टर) का उपयोग करके, इस मास्टर पेज का उपयोग करने वाले सभी पृष्ठों के लिए .सेट मैसेज (" सफलता ")'; –