1) क्या नियंत्रण (अगर कोई) GridView और TextBox जैसे नियंत्रण नियंत्रण स्थिति में बचाते हैं? BTW - मुझे लगता है कि इन नियंत्रणों को डिफ़ॉल्ट रूप से उनके नियंत्रण की स्थिति सक्षम है ?!
2) नियंत्रण को PageRegisterRequiresControlState (Init घटना के दौरान) को कॉल करने की आवश्यकता है ताकि यह संकेत दिया जा सके कि इसकी नियंत्रण स्थिति को बनाए रखने की आवश्यकता है।
नियंत्रण ए मान लें (A प्रकार WebControl2 का है)अपनी नियंत्रण स्थिति को बचाने की जरूरत है और वह A नियंत्रण B के अंदर समाहित है (B प्रकार WebControl1 का है) -> मैं B की OnInit विधि को ओवरराइड करके A के नियंत्रण अवस्था को पंजीकृत करने में सक्षम था:
protected override void OnInit(EventArgs e)
{
Control control= this.FindControl("A");
Page.RegisterRequiresControlState(control);
base.OnInit(e);
}
क्या यह एक बुरा प्रोग्रामिंग अभ्यास माना जाता है?
Thanx
उत्तर:
उत्तर № 1 के लिए 1यदि आप बहुत अधिक नियंत्रण की तलाश में हैंपरिभाषाएँ, .NET रिफ्लेक्टर देखें, एक नि: शुल्क उपकरण जो आपको इसका निरीक्षण करने की अनुमति देता है। ग्रिड व्यू के लिए, मुझे पता है कि इसमें एडिटिंडेक्स, पेजिंडेक्स, सिलेक्टेनेक्स, सॉर्टेक्प्रेशन, सॉर्टेक्लेनिशन, डेटाकेमनेम्स, कंट्रोल में स्टेटकाउंट है। मुझे नहीं लगता कि टेक्स्टबॉक्स नियंत्रण स्थिति का उपयोग करता है।
केवल आवश्यक गुणों को नियंत्रण स्थिति में संग्रहीत करें। मुझे पता नहीं है कि दूसरे नियंत्रण में टैप करने से क्या लाभ होता है, क्योंकि राज्य वास्तविक नियंत्रणों में लोड और सहेजे जाने वाले वास्तविक मूल्यों को संरक्षित लोडकंट्रोलस्टेट और SaveControLState विधियों में करना पड़ता है। सक्षम होने पर मान स्वचालित रूप से नियंत्रण स्थिति में सहेजे नहीं जाते हैं।