में एक से अधिक नियंत्रण संग्रह को प्रस्तुत करें। कभी कई नियंत्रण संग्रह के साथ एक नियंत्रण का निर्माण करने की कोशिश की, लेकिन (सरलीकृत) इस तरह इसे हल:मैं एक कस्टम Webcontrol है, जो निम्नलिखित संरचना है का निर्माण किया है ASP.NET कस्टम नियंत्रण
[PersistChildren(false), ParseChildren(true)]
public class ModalBox : WebControl
{
private ControlCollection _contents;
private ControlCollection _footer;
public ModalBox()
: base()
{
this._contents = base.CreateControlCollection();
this._footer = base.CreateControlCollection();
}
[PersistenceMode(PersistenceMode.InnerProperty)]
public ControlCollection Contents { get { return this._contents; } }
[PersistenceMode(PersistenceMode.InnerProperty)]
public ControlCollection Footer { get { return this._footer; } }
protected override void RenderContents(HtmlTextWriter output)
{
// Render content controls.
foreach (Control control in this.Contents)
{
control.RenderControl(output);
}
// Render footer controls.
foreach (Control control in this.Footer)
{
control.RenderControl(output);
}
}
}
यह ठीक से प्रस्तुत करने लगता है हालांकि, यह अब और अगर मैं कुछ asp.net लेबल और इनपुट जोड़ने काम नहीं करता है संपत्ति के अंदर नियंत्रण (एएसपीनेट कोड ऊपर देखें)। मैं HttpException मिल जाएगा:
आईडी 'KeywordTextBox' कि लेबल साथ जुड़ा हुआ है के साथ नियंत्रण प्राप्त करने में असमर्थ 'KeywordLabel'।
कुछ हद तक समझ में आता है, लेबल controlcollection में पाठ बॉक्स से पहले दिखाई देता है क्योंकि। हालांकि, डिफ़ॉल्ट asp.net नियंत्रण के साथ यह काम करता है, तो यह क्यों काम नहीं करता है? मैं क्या गलत कर रहा हूं? क्या एक नियंत्रण में दो नियंत्रण संग्रह भी संभव है? क्या मुझे इसे अलग-अलग प्रस्तुत करना चाहिए?
उत्तर के लिए धन्यवाद।
हाँ यह काम करेगा! –