याद रखें, हालांकि, अधिकांश एएसपी.नेट वेब फॉर्म डेवलपर्स द्वारा अपेक्षित कुछ व्यवहार व्यूस्टेट के बिना काम नहीं करेंगे। व्यूस्टेट का उद्देश्य भ्रम प्रदान करना है कि विभिन्न पृष्ठ और नियंत्रण गुण एक अनुरोध से अगले अनुरोध तक बने रहते हैं। व्यूस्टेट में सभी नियंत्रण गुण नहीं होते हैं, केवल वे लोग जो बदल गए हैं। विचार यह है कि व्यूस्टेट इन गुणों को बरकरार रखता है क्योंकि वे आखिरी बार प्रस्तुत किए गए फॉर्म थे।
एक अच्छा उदाहरण एक ड्रॉपडाउन पर SelectedIndexChanged
ईवेंट है (जिस पर ऑटोपॉस्टबैक सेट नहीं है)। यह काम करता है क्योंकि व्यूस्टेट पिछले इंडेक्स को बरकरार रखता है, और फॉर्म वर्तमान इंडेक्स को पोस्ट करता है, और नियंत्रण यह पता लगाने के लिए दोनों की तुलना करता है कि चयनित इंडेक्स बदल गया है। वह तब होता है जब यह SelectedIndexChanged
ईवेंट उठाता है। व्यूस्टेट के बिना, वह घटना आग नहीं जाएगी। TextChanged
घटनाओं के लिए, आदि
जीईटी स्थिति (जिसे मैंने कभी नहीं चलाया) अनुपस्थित करें, व्यूस्टेट के साथ बड़ी समस्या इसका उपयोग कर रही है जहां इसकी आवश्यकता नहीं है। आपके ग्रिड नियंत्रण को सभी पंक्तियों में सभी नियंत्रणों के पिछले मानों को बनाए रखने की आवश्यकता नहीं है, इसलिए उस पर व्यूस्टेट सक्षम न करें।
स्रोत
2009-03-15 10:40:12
@ टीएफडी: हालांकि यह निश्चित रूप से कभी-कभी होता है, मुझे विश्वास नहीं है कि यह मामला यहां है। जीएटी क्रियाओं (POST के बजाय) के साथ runat = "server" के साथ प्रपत्रों का उपयोग करना परिणामस्वरूप प्रश्नकर्ता वास्तव में व्यवहार की तरह नहीं है। मेरा जवाब कैसे प्रासंगिक नहीं है? –
@ टीएफडी जॉन सही है, हो सकता है कि आप उस तरह के लिंक जाने से पहले पोस्ट किए गए लिंक देखना चाहें;) – eglasius
जब आप वास्तव में व्यूस्टेट चाहते हैं तो GET संभवतः अनुचित है - लेकिन जब आपको * दृश्य की आवश्यकता नहीं है तो यह बहुत उपयोगी है। विशेष रूप से, पोस्टिंग बैक व्यूस्टेट को सॉर्ट करने की तुलना में जीईटी पैरामीटर के साथ एक यूआरएल बुकमार्क करना बहुत आसान है :) –