Я динамически генерирую элементы управления, и иногда я хочу создать элемент управления, чтобы он игнорировал состояние просмотра.Например, иногда пользователь нажимает кнопку, указывающую, что он хочет загрузить другую форму, поэтому генерируемое мной дерево элементов управления при обратной передаче отличается от исходного дерева элементов управления.Это нормально, за исключением случаев, когда я вызываю Controls.Add, затем он пытается загрузить состояние представления из старых элементов управления в новые элементы управления, если древовидная структура элемента управления похожа, и я хочу, чтобы они вместо этого игнорировали это состояние представления (а также игнорировали значения обратной передачи).также для элементов управления вводом).
Могу ли я сделать что-то вроде установки идентификаторов элементов управления или что-то, что позволило бы мне условно помешать им получить данные viewstate / postback предыдущего запроса?
Редактировать: если я позволяю пользователю элемента управления загружать форму по требованию в обработчике обратной передачи, данные обратной передачи не применяются, когда я вызываю Controls.Add (это действительно кажется недостатком в ASP.NET, потому что я подумал бы, что если вы собираетесь применять данные состояния представления «после факта» через Controls.Add, кажется, что вы затем автоматически примените данные обратной передачи и после загрузки данных состояния представления).Реальная проблема, с которой я сталкиваюсь, заключается в том, что мой элемент управления очень динамичен, но пользователь моего элемента управления не может сказать ему, что делать до тех пор, пока не сработает его обработчик обратной передачи, потому что пользователь может выбирать разные формы,загружается через несколько кнопок ссылок.Так что только после запуска обработчика обратной передачи они узнают, что запросил uesr, и, таким образом, могут попросить мой элемент управления загрузить определенную форму.Поэтому я должен попросить их сделать согласованные вещи, такие как сохранение formID, идентифицирующего последнюю форму, в переменной сеанса, и в OnInit они сообщают моей форме, какой старый formID был через свойство.Затем мой элемент управления загружает форму в OnLoad, чтобы она могла использовать данные состояния просмотра и обратной передачи, а затем в обработчике обратной передачи программиста они могут выбрать очистку формы и загрузку другой, если хотят.
Edit2: FYI Генерация идентификаторов для каждого элемента управления, уникального для формы, прекрасно работает, поэтому я подумал, что могу устранить бессмысленную загрузку старой формы, пока программист не запросит загрузку формы в своем обработчике обратной передачи.Но, как я упоминал выше, я обнаружил, что загрузка формы после обработки данных обратной передачи означает, что данные будут потеряны.В то время как viewstate загружается через Contorls.Add, играя в догонялки в жизненном цикле страницы, кажется, что данные обратной передачи не делают!Так что, кажется, я побежден на каждом шагу.