इतने सारे अलग अलग नियंत्रण से चुनने के लिए! ASP.NET में डेटा प्रदर्शित करने के लिए किस नियंत्रण का उपयोग करने का निर्धारण करने के लिए सर्वोत्तम अभ्यास हैं?
इतने सारे अलग अलग नियंत्रण से चुनने के लिए! ASP.NET में डेटा प्रदर्शित करने के लिए किस नियंत्रण का उपयोग करने का निर्धारण करने के लिए सर्वोत्तम अभ्यास हैं?
जवाबों:
यह वास्तव में है कि आप क्या हासिल करने की कोशिश कर रहे हैं
Gridview - लिमिटेड डिजाइन में, एक html तालिका की तरह काम करता है। अंतर्निहित कार्यक्षमता जैसे संपादन / अद्यतन, पृष्ठ, सॉर्ट में अधिक। ओवरहेड के बहुत सारे।
डेटाग्रिड - ग्रिडव्यू का पुराना संस्करण। एक ग्रिडव्यू एक सुपर डाटाग्रिड है।
Datalist - ग्रिडव्यू का अधिक अनुकूलन संस्करण। कुछ ओवरहेड भी है। अधिक मैनुअल काम के रूप में आप इसे अपने आप को डिजाइन करने के लिए है।
ListView - नया डटलिस्ट :)। डलाटिस्ट और ग्रिडव्यू का लगभग एक हाइब्रिड जहां आप पेजिंग का उपयोग कर सकते हैं और कार्यक्षमता जैसे ग्रिडव्यू में निर्माण कर सकते हैं, लेकिन डिजाइन की स्वतंत्रता है। इस परिवार में नए नियंत्रणों में से एक
पुनरावर्तक - बहुत हल्का वजन। हेडर, फुटर्स जैसी कार्यक्षमता में निर्मित नहीं। कम से कम ओवरहेड है।
बाकी सभी ने इसे मारा: यह निर्भर करता है।
अब कुछ विशिष्ट मार्गदर्शन के लिए (ऊपर WebDude के उत्कृष्ट उत्तर पर विस्तार करते हुए) ...
क्या आपका डिज़ाइन डेटा के प्राकृतिक स्प्रेडशीट या ग्रिड दृश्य में फिट बैठता है? ग्रिडव्यू ।
क्या आपको डेटा की एक सूची या अन्य स्वरूपित दृश्य प्रदर्शित करने की आवश्यकता है, संभवतः हेडर और फुटर के साथ, और संभवतः विशिष्ट रिकॉर्ड और / या डेटा के प्रत्येक रिकॉर्ड के लिए प्रारूपण के साथ? (जैसे, कस्टमाइज़्ड लिंक, संभवतः लिंकबटन, या विशिष्ट संपादन नियंत्रण?) क्या यह डिस्प्ले विशेष रूप से एक स्प्रेडशीट या ग्रिड दृश्य में स्वाभाविक रूप से फिट नहीं है? सूची दृश्य
यदि आप ListView के सभी मानदंडों को पूरा करते हैं, लेकिन आप स्वाभाविक रूप से एक ग्रिड में फिट होंगे, तो आप DataList पर विचार कर सकते हैं ।
मैं रिपीटर के लिए जाता हूं जब मुझे कुछ कस्टम डिज़ाइन बिट्स के साथ कुछ मूल डेटा की आवश्यकता होती है, कोई हेडर नहीं, कोई पाद नहीं, अच्छा और साफ।
निम्नलिखित नमूना कोड की घोषणा सभी 3 के लिए संभव है (सूची दृश्य, डेटा सूची, पुनरावर्तक)
<asp:ListView runat="server" OnItemCommand="Unnamed1_ItemCommand">
<ItemTemplate> <%# Eval("Name")%> </ItemTemplate>
<asp:ListView>
निम्नलिखित सूचियों में आप उनमें से प्रत्येक के लिए उपलब्ध टेम्पलेट और विकल्प देख सकते हैं और अपने लिए अंतर देख सकते हैं
ListView (संपादित करें, समूह, प्रविष्टि, लेआउट पर ध्यान दें)
DataList (शैली जोड़े पर ध्यान दें)
अपराधी
कम्पोजिटडाउबाउंडकंट्रोल :
निम्नलिखित कक्षाओं को पदानुक्रम (और संबंधित नियंत्रण) देखें।
ये नियंत्रण उपयोगकर्ता को बाउंड-डेटा प्रदर्शित करने के लिए अपने टेम्प्लेट में अन्य asp.net नियंत्रणों को होस्ट करता है
सूची दृश्य नियंत्रण
ListView नियंत्रण भी डेटा के प्रदर्शन के लिए टेम्पलेट्स का उपयोग करता है। हालांकि, यह कई अतिरिक्त टेम्पलेट्स का समर्थन करता है जो आपके डेटा के साथ काम करते समय अधिक परिदृश्यों की अनुमति देता है। इन टेम्पलेट्स में LayoutTemplate, GroupTemplate, ItemSeparatorTemplate शामिल हैं ।
ListView नियंत्रण ( DataList और Repeater के विपरीत ) भी स्पष्ट रूप से डेटा स्रोत नियंत्रण का उपयोग करके डेटा को संपादित करने, सम्मिलित करने और हटाने की क्षमता का समर्थन करता है। आप इनमें से प्रत्येक परिदृश्य के लिए अलग-अलग टेम्पलेट्स को परिभाषित कर सकते हैं।
डेटालिस्ट नियंत्रण
DataList नियंत्रण पुनरावर्तक नियंत्रण की तरह काम करता है । यह आपके डेटा सेट में प्रत्येक पंक्ति के लिए डेटा को दोहराता है, और यह आपके निर्धारित टेम्पलेट के अनुसार इस डेटा को प्रदर्शित करता है। हालाँकि , यह विभिन्न HTML संरचनाओं के भीतर टेम्पलेट में परिभाषित डेटा देता है। इसमें क्षैतिज या ऊर्ध्वाधर लेआउट के विकल्प शामिल हैं, और यह आपको यह भी निर्धारित करने की अनुमति देता है कि डेटा को कैसे दोहराया जाना चाहिए, प्रवाह या टेबल लेआउट के रूप में।
डेटा संपादित करने के लिए डेटालिस्ट नियंत्रण स्वचालित रूप से डेटा स्रोत नियंत्रण का उपयोग नहीं करता है। इसके बजाय, यह कमांड ईवेंट प्रदान करता है जिसमें आप इन परिदृश्यों के लिए अपना कोड लिख सकते हैं। इन घटनाओं को सक्षम करने के लिए, आप किसी एक टेम्प्लेट में एक बटन नियंत्रण जोड़ते हैं और कीवर्ड को संपादित, हटाएं, अपडेट या रद्द करने के लिए बटन का कमांड नाम गुण सेट करते हैं। उपयुक्त घटना तब DataList नियंत्रण द्वारा उठाया जाता है।
पुनरावर्तक नियंत्रण
पुनरावर्तक नियंत्रण कस्टम बाइंडिंग को परिभाषित करने के लिए टेम्पलेट्स का भी उपयोग करता है। हालाँकि, यह डेटा को व्यक्तिगत रिकॉर्ड के रूप में नहीं दिखाता है। इसके बजाय, यह डेटा पंक्तियों को दोहराता है जैसा कि आप अपने टेम्पलेट में निर्दिष्ट करते हैं। यह आपको डेटा की एक पंक्ति बनाने की अनुमति देता है और इसे आपके पृष्ठ पर दोहराता है।
पुनरावर्तक नियंत्रण केवल पढ़ने के लिए टेम्पलेट है। यही है, यह केवल ItemTemplate का समर्थन करता है। यह संपादन, सम्मिलन और विलोपन का समर्थन नहीं करता है। यदि आपको इस कार्यक्षमता की आवश्यकता है, तो आपको अन्य नियंत्रणों में से एक पर विचार करना चाहिए, अन्यथा आपको पुनरावर्तक नियंत्रण के लिए इसे स्वयं कोड करना होगा ।
उपरोक्त विवरण Microsoft.NET फ्रेमवर्क 4 पुस्तक के साथ MCTS परीक्षा 70-515 वेब अनुप्रयोग विकास से हैं ।
डेटाग्रिड का उल्लेख इस पुस्तक में भी नहीं किया गया है और इसे लोकप्रिय GridViews द्वारा बदल दिया गया है और अन्य उपयोगकर्ताओं द्वारा अच्छी तरह से उत्तर दिया गया है
वास्तव में! मैंने ASP.NET 4.0 डेटा टूल्स के बीच अंतरों पर ब्लॉग किया है । मूल रूप से, ग्रिड्यूलर टेबुल जानकारी पेश करने का सबसे शक्तिशाली तरीका है, जबकि बार-बार डेटा के अधिक जटिल प्रदर्शनों के लिए सूची दृश्य नियंत्रण हैं। अगर मैं एक ASP.NET नौसिखिया को सलाह दे रहा था, तो मैं उन्हें अंदर से ग्रिडविद्या सीखने और अन्य नियंत्रणों को अनदेखा करने के लिए कहूंगा।
यह सब नीचे आता है कि आप अपने डेटा को कैसे लेआउट करना चाहते हैं।
यदि आपको लेआउट को नियंत्रित करने की आवश्यकता है (जैसे तालिकाओं बनाम सीएसएस बनाम जो भी), तो एक पुनरावर्तक या सूची दृश्य का उपयोग करें। दोनों के बीच, ListView आपको बहुत अधिक ईवेंट और अंतर्निहित कमांड्स संपादन, चयन, डालने के लिए देता है। इसके अतिरिक्त पेजिंग और ग्रुपिंग कार्यक्षमता। एक पुनरावर्तक अत्यंत सरल है, यह डेटा के साथ एक लेआउट को दोहराता है। चूंकि आप लेआउट को हाथ से बना रहे हैं, लिस्टव्यू और रिपीटर को अधिक कोड की आवश्यकता होती है।
GridView एक अपडेटेड DataGrid है, इसलिए DataGrid का उपयोग करने का कोई कारण शायद ही हो। GridView मानक ASP.NET डेटा स्रोत पर आदी होने पर वास्तव में अच्छी तरह से काम करता है, लेकिन आपको बहुत सारे लेआउट नियमों के साथ एक सारणीबद्ध लेआउट तक सीमित करता है। जब आप बिल्ट-इन लेआउट का उपयोग कर रहे हों, तब ग्रिड व्यू को कम कोड की आवश्यकता होती है।