Question:You create a Microsoft ASP.NET application by using the Microsoft .NET Framework version 3.5.
You create two user controls named UserCtrlA.ascx and UserCtrlB.ascx. The user controls postback to the server.
You create a new Web page that has the following ASPX code:
<asp:CheckBox ID="Chk" runat="server"
oncheckedchanged="Chk_CheckedChanged"
AutoPostBack="true" />
<asp:PlaceHolder ID="PlHolder" runat="server"></asp:PlaceHolder>
To dynamically create the user controls, you write the following code segment for the Web page:
public void LoadControls()
{
if (ViewState["CtrlA"] != null)
{
Control c;
if ((bool)ViewState["CtrlA"] == true)
{
c = LoadControl("UserCtrlA.ascx");
} else {
c = LoadControl("UserCtrlB.ascx");
}
c.ID = "Ctrl";
PlHolder.Controls.Add(c);
}
}
protected void Chk_CheckedChanged(object sender, EventArgs e)
{
ViewState["CtrlA"] = Chk.Checked;
PlHolder.Controls.Clear();
LoadControls();
}
You need to ensure that the user control that is displayed meets the following requirements:
It is recreated during postback
It retains its state.
Which method should you add to the Web page?
A protected override object SaveViewState() {
LoadControls();
return base.SaveViewState();
}
B protected override void Render(HtmlTextWriter writer) {
LoadControls();
base.Render(writer);
}
C protected override void OnLoadComplete(EventArgs e) {
base.OnLoadComplete(e);
LoadControls();
}
D protected override void LoadViewState(object savedState) {
base.LoadViewState(savedState);
LoadControls();
}