保存加载用户控件动态到viewstate

时间:2010-01-05 10:16:00

标签: c# user-controls viewstate

我将用户控制动态添加到页面并尝试保存到viewstate    当我试图将占位符保存到视图状态时,我收到了此错误   “PlaceHolder不是标记为可序列化的。”

这是我的代码

  Controls_PriceControl ctrl = (Controls_PriceControl)LoadControl("../Controls/PriceControl.ascx");
    plcPrices.Controls.Add(ctrl);

    ViewState["plcPrices"] = plcPrices;
你可以帮我解决这个问题吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您不应将实际控件保存到ViewState,而只保存其状态(通常是属性)。保存和加载控件属性通常可以直接在属性声明中完成:

public class FooControl : Control
{
    public string Bar
    {
        get { return ViewState["Bar"] as string; }
        set { return ViewState["Bar"] = value; }
    }
}