ページを開発しようとしています。ボタンとプレースホールダーがあります。ボタンをクリックすると、ユーザー コントロールがプレースホルダーに追加されます。
ボタンをクリックするたびに、多くのユーザー コントロールをプレースホルダーに追加する必要があります。
preinit イベントでプレースホルダーをビューステートに保存しようとしていますが、ロード イベントでビューステートからプレースホルダーを取得している間、ビューステートは null のままです。
以下は私のコードです:
protected void PreInit(object sender, EventArgs e)
{
this.OnPreInit(e);
if (!Page.IsPostBack)
{
ViewState["c"] = PlaceHolder1;
}
else { PlaceHolder1 = (PlaceHolder)ViewState["c"]; }
}
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack)
{ PlaceHolder1= (PlaceHolder)ViewState["c"]; }
}
public void addDepartmentBtn_Click(object sender, EventArgs e)
{
// User Control Code
c1 = LoadControl("~/AddDepartment.ascx");
PlaceHolder1.Controls.Add(c1);
}
このシナリオでviewstateが適切でない場合、これを達成するための代替方法は何ですか?