Hi Chris,
The radiobutton is not saving its state because it is being created too
late; at Render lots of important key events have already fired (Init,
viewstate loading, etc) and your control was not there yet to be called by
the fx to update its state/etc. Please take a look at the Control Execution
Lifecycle to learn more about how it will affect dynamically created
controls. Here[1] you will find a link to the docs and some insights I've
written about the topic.
[1]
http://weblogs.asp.net/vga/archive/2.../11/23498.aspx
--
Victor Garcia Aprea
Microsoft MVP | ASP.NET
Looking for insights on ASP.NET? Read my blog:
http://obies.com/vga/blog.aspx
To contact me remove 'NOSPAM'. Please post all questions to the newsgroup
"Chris" <> wrote in message
news:AE3AFA6F-786D-4831-823B-...
> I'm trying to create a WebControl that creates additional WebControls at
runtime and persists their data across the PostBack.
>
> The basic idea is this:
>
> public class WebControl1: System.Web.UI.WebControls.WebControl
> {
> // Member Variables, Properties, etc...
>
> protected override void Render(HtmlTextWriter output)
> {
> RadioButton myRadioButton = new RadioButton();
> myRadioButton.ID = "RadioButton1";
> myRadioButton.GroupName = "RadioButtonGroup1";
> Page.Controls.Add(myRadioButton);
> myRadioButton.RenderControl(output);
> }
> }
>
> When this control is used on a page such as:
>
> <tag:webcontrol id="WebControl1" runat="server"></tag:webcontrol>
>
> ... everything loads up nicely (i.e. a RadioButton is rendered to the
page). Obviously, because the control (myRadioButton) is created each time
the class is loaded and the HTML output is rendered, if the RadioButton is
toggled (checked), it will not retain its state.
>
> Rather than go into all of the things I've *tried* to do to get this
RadioButton to persist its Checked property across PostBack's, I'll just
pose my question directly which is what do I need to add to this (very
simple) code to get that RadioButton to persist its state across PostBack's?
>
> Obviously, at some point I need to *save* the value the user sets it to
and at some point I need to check that value and restore it when the control
is re-created on PostBack but where? Override some methods
(SaveViewState/LoadViewState)? Implement an Interface (IPostBackDataHandler,
etc...)?
>
> Much thanks in advance -
>
> - Chris
>