2009-05-03 12 views
5

कोई व्यक्ति नीचे दिए गए अनुरोध को हल करने के लिए कार्रवाई के सर्वोत्तम कारण की सिफारिश करने का प्रयास कर सकता है:नेट रिपेटर एक ऑब्जेक्ट के बराबर है?

मैंने दोहराने वाले वर्ग का उपयोग आधार के रूप में किया है और लचीलापन, आसानी और इसे करने के नतीजों से प्यार किया है । मैं अब एक ही ऑब्जेक्ट के लिए एक समान कस्टम वेब नियंत्रण बनाना चाहता हूं (यानी डेटासोर्स एक आईएलआईस्टसोर्स या आईनेमरेबल लागू नहीं कर रहा है)। मैंने पुनरावर्तक को विस्तारित करके और फिर वस्तु को पकड़ने के लिए 1 आइटम की सूची का उपयोग करके डेटास्रोत सेट करते समय और फिर डाटाबेसिंग को स्थापित करने के लिए डेटासोर्स सेट करने की संरचना बनाई है।

e.g a rough example: 

    Dim oObj as New MyObject(1) 
    Dim gl As New Generic.List(of MyObiect)() 
    gl.Add(oObj) 
    rpt.DataSource = gl 
    rpt.DataBind() 

यह बातें, मैं ऐसा करने में सक्षम होना चाहते हैं क्या चारों ओर एक छोटा सा हैक की तरह लग रहा है निम्नलिखित:

e.g new call, where my control is the new custom control: 

    Dim oObj as New MyObject(1) 
    myControl.DataSource = oObj 
    myControl.DataBind() 

मैं विभिन्न चर के साथ इस कस्टम नियंत्रण परिभाषित करने में सक्षम करना चाहते हैं और गुण, जिसके परिणामस्वरूप लेआउट के निम्नलिखित प्रकार सक्षम हो जाएगा:

<My:ObjControl ID="frm" runat="server"> 
    <Tabs> 
     <My:Tab name="Details"> 
      <Items> 
       <My:Item Type="Text" Label="First Name" Property="FirstName" /> 
       <My:Item Type="Text" Label="Last Name" Property="LastName" /> 
       <My:Item Type="Text" Label="Title" Property="Title" /> 
      </Items> 
     </Tab> 
     <My:Tab name="Address"> 
      <Items> 
       <My:Item Type="Text" Label="Address 1" Property="Address1" /> 
       <My:Item Type="Text" Label="Address 2" Property="Address2" /> 
       <My:Item Type="Text" Label="Address 3" Property="Address3" /> 
      </Items> 
     </Tab> 
    </Tabs> 
</My:ObjControl> 

इस कार्यान्वयन WebForms का उपयोग कर जगह लेने के लिए, हालांकि यह MVC का उपयोग कर आदर्श दृष्टिकोण होगा की तरह लग रहा है उपरोक्त पर विचार। ऐसा करके मैं एक लचीला वेबकंट्रोल बनाना चाहता हूं जो प्रतिबिंब का उपयोग करता है (जिसका उपयोग उन सभी वर्गों के लिए किया जा सकता है जो एक विशिष्ट इंटरफ़ेस को लागू करते हैं) जो आवश्यकतानुसार प्रत्येक बार की आवश्यकता के बाद कोड की केवल तीन पंक्तियों (उपरोक्त) के साथ आवश्यक फॉर्म उत्पन्न करेगा।

क्या मुझे एक कस्टम पुनरावर्तक (डेटाऑब्जेक्ट) में एक संपत्ति जोड़नी चाहिए जो ऑब्जेक्ट लेता है और डेटासोर्स को तदनुसार सेट करता है और अपना समय बचाता है? या कोई बेहतर तरीका है?

आशा है कि यह सब समझ में आता है!

चीयर्स, स्टीव

उत्तर

5

आप तथ्य यह है कि पुनरावर्तक एक सूची चाहता है चारों ओर पाने के लिए कड़ी मेहनत करने के लिए जिस तरह से कोशिश कर रहे हैं और आप इसे 1 उदाहरण देना चाहता हूँ। बस इसे एक नई सूची * ओओबीजे में लपेटें) और आगे बढ़ें। यह हर समय किया जाता है।

मुझे निश्चित रूप से पता नहीं है कि वे कस्टम सर्वर नियंत्रण के साथ क्या चल रहा है। मुझे लगता है कि आप फिर से बहुत मेहनत कर रहे हैं।

<asp:repeater id="whatever" runat=server> 
    <ItemTemplate>First Name: <%# DataBinder.Eval(Container.DataItem,"FirstName") %></ItemTemplate> 
</asp:repeater> 
+0

ठीक है, विचार प्रक्रिया को पार करना बहुत मुश्किल है, लेकिन मेरा नियंत्रण क्या हासिल करेगा, एक लीग टैब 'विवरण' और 'पता' वाला एक पृष्ठ है जिसे प्रत्येक के बीच टैबड किया जा सकता है और प्रत्येक पर लेबल और मिलान होगा तत्व तत्व जो वस्तु को अद्यतन कर सकते हैं। जो आपने दिखाया है वह पूरी तरह से इस बिंदु को याद कर चुका है - शायद प्रश्न की शब्दावली में मेरी गलती। बेशक आपके उदाहरण में मैं बस ऐसा कर सकता था: Eval ("FirstName")। – stibstibstib

+1

अभी भी कुछ टैब के लिए यह काम करने के लिए अधिक है और मैं अभी भी एक दोहराने की सिफारिश करता हूं। हां मैं आपका प्रश्न पूरी तरह समझ नहीं पा रहा हूं। मैं Eval, DataBinder का उपयोग नहीं करता हूं। इसे करने का 1.0 तरीका है और मुझे अभी तक बदलने का कोई कारण नहीं है, आदत। –

2

मैं पूरी तरह से आपके दृष्टिकोण को समझता हूं, stibstibstib। मैं यह भी चाहता हूं कि एएसपी.नेट फ्रेमवर्क टेम्पलेट संचालित सर्वर नियंत्रण जैसे ListView के साथ आया लेकिन एक डेटा ऑब्जेक्ट के लिए आया था। यह अनावश्यक लगता है, और थोड़ी हकीश महसूस करता है, इसे एक ही आइटम से सूची बनाने के लिए बस इसे पुनरावर्तक और सूची दृश्य के साथ काम करने के लिए। मुझे लगता है कि यह काम करता है। मुझे लगता है कि यह एक साधारण समाधान है। लेकिन एएसपी.नेट एक फ्रेमवर्क है, और यह सिर्फ एक चूक की तरह लगता है जिसे तय किया जाना चाहिए। यह आलेख http://gadgetopia.com/post/5343 एक ही अवधारणा पर छूता है, कि वेब साइट पर सामग्री देखने के दो मौलिक तरीके हैं: एक आइटम के रूप में, और सूची में आइटम के रूप में। अभी भी आश्चर्यचकित है कि एएसपी.नेट में कोई आइटमव्यू सर्वर नियंत्रण

1

कुछ स्थितियों में आप DetailsView का उपयोग कर सकते हैं।

संबंधित मुद्दे