संग्रह संग्रह के साथ आप एएसपी.NET कस्टम नियंत्रण कैसे बनाते हैं?


12

मैं

<cstm:MyControl runat="server"> 
    <myItem attr="something" /> 
    <myItem attr="something" /> 
</cstm:MyControl> 

क्या इस पुल की जरूरत नंगे हड्डियों कोड है के लिए कुछ सदृश करने के लिए देख रहा हूँ?

रिक की उदाहरण

<cstm:MyControl runat="server"> 
    <myItems> 
     <cstm:myItem attr="something" /> 
     <cstm:myItem attr="something" /> 
    </myItems> 
</cstm:MyControl> 

के लिए कुछ सदृश मैं और अधिक संक्षिप्त वाक्य रचना संभव हो तो पसंद करते हैं पता चलता है।

नोट: बेहतर शीर्षक या विवरण का सुझाव देने के लिए स्वतंत्र महसूस करें। यहां तक ​​कि यदि आपके पास संपादन अधिकार नहीं हैं, तो भी मुझे समुदाय के लिए प्रविष्टि को संपादित करने में खुशी हो रही है।

namespace TestControl 
{ 
    [ParseChildren(true, DefaultProperty = "Names")] 
    public class MyControl : Control 
    { 
     public MyControl() 
     { 
      this.Names = new List<PersonName>(); 
     } 

     [PersistenceMode(PersistenceMode.InnerDefaultProperty)] 
     public List<PersonName> Names { get; set; } 
    } 

    public class PersonName 
    { 
     public string Name { get; set; } 
    } 
} 

यहाँ और, एक उदाहरण के उपयोग है:

  0

मैं इस का शीर्षक बदलने का सुझाव होगा "एक डिफ़ॉल्ट संग्रह संपत्ति के साथ आप एएसपी.NET कस्टम नियंत्रण कैसे बना सकते हैं?", क्योंकि घोषणात्मक संग्रह संपत्ति के साथ नियंत्रण बनाने पर कुछ स्पष्टीकरण हैं, लेकिन कुछ बताते हैं कि इसे डिफ़ॉल्ट संपत्ति कैसे बनाएं। 23 sep. 082008-09-23 21:10:07

17

यहाँ एक बहुत ही सरल उदाहरण नियंत्रण है कि है कि वास्तव में क्या आप के लिए देख रहे हैं

<%@ Register Namespace="TestControl" TagPrefix="TestControl" %> 

<TestControl:MyControl runat="server" ID="MyControl1"> 
    <TestControl:PersonName Name="Chris"></TestControl:PersonName> 
    <TestControl:PersonName Name="John"></TestControl:PersonName> 
</TestControl:MyControl>