Какой официальный способ Microsoft отследить количество динамических элементов управления, которые будут восстановлены после Postback? - PullRequest
0 голосов
/ 21 декабря 2010

При создании динамических элементов управления на основе источника данных произвольного и изменяющегося размера, каков официальный способ точно отслеживать, сколько элементов управления необходимо перестроить в коллекцию элементов управления страницы после операции обратной передачи (т.е.на стороне сервера в течение жизненного цикла события страницы ASP.NET) в частности, точка, в которой динамические элементы управления должны быть перестроены?Где хранится арность для поиска и восстановления?

Под «официальным» я подразумеваю способ Microsoft сделать это.Существуют такие хаки, как хранилище сессий и т. Д., Но я хочу знать истинный или хотя бы рекомендованный Microsoft способ.Мне не удалось найти страницу документации с указанием этой информации.Обычно примеры кода работают с набором динамических элементов управления известными числами.Как будто делать иначе было бы сложнее.

Обновление : я не спрашиваю о пользовательских элементах управления или статическом выражении декларативных элементов управления, а вместо этого о динамическом введении элементов управления полностью из кода, независимо от того, являются ли они моими, сторонними иливстроенные элементы управления ASP.NET.

1 Ответ

1 голос
/ 21 декабря 2010

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

Тем не мение.Нет ничего похожего на способ Microsoft или способ, рекомендуемый Microsoft в принципе.Когда вы динамически добавляете несколько простых элементов управления одного и того же типа, скрытое поле со счетчиком будет работать, но при наличии нескольких сложных элементов управления придется использовать другие способы.Вы можете по-прежнему скрывать поля и сохранять в них строки полного типа элемента управления (т. Е. System.Web.UI.WebControls.TextBox) и повторно создавать их экземпляры.Но подумайте о еще более сложном примере размещения различных элементов управления на разных частях страницы ... И инициализации их в определенном состоянии.Это было бы немного сложнее.Следовательно, нет способа Microsoft ... Рекомендованный способ - воссоздать на этапе инициализации.И это все.

Все может быть решено, но иногда можно было ошибиться в пользовательском интерфейсе, и можно было бы сделать проще, используя другой подход.

Дополнительные пояснения

Этот метод с полным состоянием ViewState, который использует Asp.net, считается худшим виновником веб-разработчиков в целом.Вот почему разработчики Asp.net MVC считают, что новая среда - это блаженство, так как она намного больше подходит для протокола HTTP без состояния.Я являюсь одним из них.: D

...