ChildControls state

M

mauricio

Hi,

Sorry for my english.

I have a custom server control that derive from Panel.

In my control I want to add an Checkbox, but after an postback it
checkbox lost the state of checked property.

My code:

public class CheckboxPanel : System.Web.UI.WebControls.Panel,
IPostBackDataHandler
{
private CheckBox _chk = new CheckBox();

protected override void CreateChildControls()
{
_chk = new CheckBox();
_chk.ID = this.ClientID + "_chk";
}

public override void RenderBeginTag(HtmlTextWriter writer)
{
base.RenderBeginTag(writer);

writer.AddStyleAttribute(HtmlTextWriterStyle.Width,
"100%");

writer.RenderBeginTag(HtmlTextWriterTag.Table);

writer.RenderBeginTag(HtmlTextWriterTag.Tr);

writer.RenderBeginTag(HtmlTextWriterTag.Td);

_chk.RenderControl(writer);

writer.RenderEndTag(); // TD

writer.RenderEndTag(); // TR

writer.RenderBeginTag(HtmlTextWriterTag.Tr);

writer.RenderBeginTag(HtmlTextWriterTag.Td);
}

public override void RenderEndTag(HtmlTextWriter writer)
{
writer.RenderEndTag();
writer.RenderEndTag();
writer.RenderEndTag();

base.RenderEndTag(writer);
}
}
 
B

bruce barker

the ceckbox you create is private variable, not a child of your control, so
that your code is handling the event cycle for the checkbox. you need to
handle the loadpostbackdata event also if you want postback data loaded. you
can either fire the event, or load the postback yourself.

the other approach is to make the checkbox a real child. create table (or
generic) objects in CreateChildControls and add to your Controls collection,
then add the checkbox to the proper child.

-- bruce (sqlwork.com)
 

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,982
Messages
2,570,185
Members
46,736
Latest member
AdolphBig6

Latest Threads

Top