Design time doesn't update when changing collection

P

pedrobernabeu

I have a custom control with a ListItemCollection. If I add items by
hand in the aspx and switch to design time view, everything works fine.
However if I add items through the Collection Editor, the control
doesn't update until I change something in the aspx and change to
design view. However, if you try to update a DropDownList with the
collection editor, the control updates as soon as you change something
in the Collection Editor.

Anybody knows what's wrong with this code?

using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace MyComponents
{
[Serializable]
[ParseChildren(true, "Items")]
public class TestControl : WebControl, INamingContainer
{
private ListItemCollection _items;

[DefaultValue(null),
PersistenceMode(PersistenceMode.InnerDefaultProperty)]
public ListItemCollection Items {
get { return _items; }
}

public override ControlCollection Controls {
get {
EnsureChildControls();
return base.Controls;
}
}

public TestControl() : base(HtmlTextWriterTag.Div)
{
_items = new ListItemCollection();
}

protected override void CreateChildControls()
{
Controls.Add(new LiteralControl("-- TestControl --<br>"));
for (int i = 0; i < _items.Count; i++){
LiteralControl l = new LiteralControl(_items.Text + "<br>");
Controls.Add(l);
}
}

protected override void RenderContents(HtmlTextWriter writer)
{
foreach(Control ctrl in Controls){
ctrl.RenderControl(writer);
}
}

}
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,153
Members
46,701
Latest member
XavierQ83

Latest Threads

Top