Комментарии 9
Чем не устраивает?
Само собой разумеется, что значения нужные контролу нужно определять в контроле, не понимаю, зачем вы это написали.
Но как вариант вместо скрытых полей внутри контрола можно использовать ControlState. Это кстати, гораздо удобнее.
Само собой разумеется, что значения нужные контролу нужно определять в контроле, не понимаю, зачем вы это написали.
Но как вариант вместо скрытых полей внутри контрола можно использовать ControlState. Это кстати, гораздо удобнее.
Понятно. Но я не уверен, что при сохранении большого количества данных через HiddenField размер страницы будет сильно меньше чем при использовании ControlState. Надо бы исследовать этот вопрос.
Кстати, есть "паттерн", если так можно выразиться, как нужно переопределять эти методы, если элемент управления наследуется от другого:
в Load:
Pair pair = savedObject as Pair;
if (pair == null)
return;
_myObject = pair.First as MyObjectType;
base.LoadControlState(pair.Second);
в Save:
return new Pair(_myObject, base.SaveControlState());
в Load:
Pair pair = savedObject as Pair;
if (pair == null)
return;
_myObject = pair.First as MyObjectType;
base.LoadControlState(pair.Second);
в Save:
return new Pair(_myObject, base.SaveControlState());
спасибо, полезно
а можно источник паттерна? он кем-то описан?
а можно источник паттерна? он кем-то описан?
Возможно, этот подход доработанный вариант описанного здесь.
Но то, что это первоисточник не факт.
Но то, что это первоисточник не факт.
Источник я не скажу. Просто, когда-то давно разбирал этот вопрос и наткнулся на статью соответствующую. В гугле можно легко найти источники, например, с помощью запроса base.loadcontrolstate. У меня первый результат получился - http://haacked.com/archive/2007/03/16/gain-control-of-your-control-state.aspx.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
asp.net: использование механизма ControlState