सरल सवाल, मुझे लगता है।डेटाबिंड() विधि क्यों आवश्यक है?
लंबे समय तक मैंने अंधाधुंध (एएसटी) सामान्य पैटर्न का पालन किया है जब प्रोग्रामिंग रूप से मेरे एएसपी.NET नियंत्रणों को डाटाबेसेट किया जा रहा है। अर्थात्:
gridView1.DataSource = someList;
gridView1.DataBind();
हालांकि, अगर मैं मेरे GridView की स्थापना कर रहे थे DataSourceID संपत्ति के माध्यम से एक डेटास्रोत नियंत्रण करने के लिए बाध्य करने के लिए, DataBind करने के लिए कॉल() अनावश्यक है। अर्थात्:
gridView1.DataSourceID = LinqDataSource1;
पर्याप्त है।
इसके अलावा, अगर आप ASPX मार्कअप में डेटा स्रोत गुण सेट करने के लिए प्रयास करते हैं, तो आपको निम्न के साथ स्वागत कर रहे हैं:
आप डेटा स्रोत संपत्ति एलान के तौर पर निर्धारित नहीं कर सकते।
मुझे लगता है कि ये संबंधित हैं, लेकिन मैं अभी भी स्टंप हूं कि डेटाबिंड() आवश्यक क्यों है। डेटासोर्स और डेटासोर्सिड के बीच का अंतर माध्यमिक है - मैं वहां कुछ जादू लेने वाला समझ सकता हूं। असली सवाल डेटासोर्स प्रोपेरी सेटर स्वचालित रूप से डाटाबेसिंग क्यों नहीं करता है? क्या कोई परिदृश्य है जिसमें हम डेटासोर्स सेट करना चाहते हैं लेकिन इससे बंधे नहीं हैं?
आप व्याख्या कर सकते हैं कि कैसे बाध्यकारी बाद में मेमोरी में डेटा को ध्यान में रखते हुए कम समय का कारण बनता है?मैं स्मृति में रखे गए एक साधारण संग्रह के लिए मानता हूं (जैसा ऊपर है, अगर कुछ सूची सूची
स्रोत के रूप में एक datareader का उपयोग करने के बारे में सोचो। यदि आप तुरंत बाध्य करते हैं, तो आप पाठक पर पुन: प्रयास करेंगे और उन सामग्रियों को स्मृति में रखें। यदि आप पेज लाइफसाइक्ल में बाद में प्रतीक्षा करते हैं, तो आप कम समय के लिए इसे लटकाते हैं। –
स्पष्टीकरण के लिए धन्यवाद, हालांकि मुझे समझ में नहीं आता कि यह आपके द्वारा कनेक्शन को सक्रिय रखने में कितना समय कम करता है? कनेक्शन केवल तब खुला होता है जब ExecuteSelect() को OnDataBinding ईवेंट से कॉल किया जाता है। जब निष्पादित करें() समाप्त होता है तो इसे 'dbConnection.Close();' कहते हैं और कनेक्शन अब सक्रिय नहीं है। क्या मैं कुछ भूल रहा हूँ? – BornToCode