Как включить ViewState для дочерних пользовательских элементов управления при отключении в родительском? - PullRequest
6 голосов
/ 06 октября 2008

Я пытаюсь создать пользовательский элемент управления, который похож на элемент «gridview», но специально для бизнес-объектов, которые реализуют определенные пользовательские интерфейсы.

При этом я столкнулся со следующей проблемой.

У меня есть элемент управления, для которого я отключил viewstate (и я не хочу его повторно включать), и у него есть дочерний элемент управления, для которого я хочу включить viewstate. Кажется, я не могу заставить работать viewstate на дочернем контроле, так как его родители отключены. У кого-нибудь есть идеи, как заставить это работать?

Ответы [ 3 ]

7 голосов
/ 06 октября 2008

Нельзя включить ViewState для элемента управления, который находится в другом элементе управления, для которого Viewstate отключен.

Ваша единственная возможность - включить его для внешнего элемента управления, а затем отключить для всех элементов управления в нем, кроме элемента управления, который вам нужен viewstate.

Свойство EnableViewState для любого контейнера переопределит поведение всех элементов управления в этом контейнере.

Удачи!

EDIT: Возможно, вы захотите взглянуть на ваш метод CreateChildContols () и перечислить элементы управления, отключающие оттуда viewstate для каждого из элементов управления в пользовательском элементе управления, используя свойство EnableViewState .

0 голосов
/ 11 февраля 2011

Очевидно, что это возможно с Asp.Net 4.0

0 голосов
/ 10 февраля 2009

Если вы довольны ручным вводом данных в ViewState (вместо того, чтобы ASP.NET сохранял для вас состояние элемента управления), вы можете поместить элементы непосредственно в ViewState страницы, а не в ViewState вашего элемента управления. .

т.е. вместо того, чтобы сказать:

this.ViewState["someKey"] = someValue;

говорят:

this.Page.ViewState["someKey"] = someValue;

Будьте осторожны - если у вас есть более одного экземпляра элемента управления на странице, вы должны убедиться, что они используют разные ключи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...