сохранить Load User Control Dynamic для просмотра состояния - PullRequest
1 голос
/ 05 января 2010

я добавляю пользовательский элемент управления динамически на страницу и пытаюсь сохранить в viewstate когда я попытался сохранить заполнитель в состояние просмотра, я получил эту ошибку «PlaceHolder не помечен как сериализуемый.»

вот мой код

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

    ViewState["plcPrices"] = plcPrices;

Можете ли вы помочь мне с этим вопросом?

спасибо!

1 Ответ

1 голос
/ 05 января 2010

Вы не должны сохранять ваши фактические элементы управления в ViewState, а только их состояние (обычно свойства). Сохранение и загрузку управляющих свойств часто можно выполнить непосредственно в объявлении свойства:

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