UpdatePanel с повторителем и редактируемыми полями - PullRequest
1 голос
/ 01 февраля 2011

У меня есть панель обновления с повторителем и некоторыми полями. Когда пользователь заполняет данные в полях, он заполняет коллекцию, которую я храню в Viewstate, который затем привязывается к повторителю.

Таким образом, панель обновлений обновляется, и повторитель теперь содержит новый элемент, значения, для которого пользователь только что заполнил в форме.

У меня также есть кнопка редактирования как часть этого повторителя, которая при щелчке заполняет поля формы данными, которые первоначально вводил пользователь.

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

Например, представьте форму с двумя полями:

Имя: Возраст:

Я ввожу Боба и 46 и нажимаю Сохранить.

Повторитель теперь показывает запись для Боба 46 с кнопкой «Изменить» рядом с ней. Пользователь нажимает кнопку редактирования, и поля формы заполняются Бобом и снова 46.

Пользователь затем меняет его на Боба 47 лет и нажимает Сохранить. Теперь вместо двух записей (Боб 46 и Боб 47) - один боб 46 будет обновлен до Боб 47.

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

1 Ответ

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

Ваш вопрос указывает на некоторую путаницу в отношении того, как работает UpdatePanel ASP.NET.

Каждый раз, когда вы выполняете «частичную» обратную передачу для обновления вашей UpdatePanel, ваша страница фактически выполняется полностью, проходя через все частиЖизненный цикл страницы независимо от их релевантности вашей UpdatePanel.Затем просто UpdatePanel обновляется на странице.Такое поведение делает работу страницы более быстрой, и я полагаю, что это может сэкономить некоторое время рендеринга на стороне клиента, но на самом деле вы выполняете полную обратную передачу каждый раз, когда обновляете UpdatePanel.

С этимИмейте в виду, что если вы собираетесь использовать UpdatePanel для хранения вашего ретранслятора, нет никаких причин делать что-то ужасное для хранения данных.Просто используйте обычные методы повторителя для добавления, редактирования и т. Д. Если нет другого требования, которого я здесь пропускаю, нет особой причины хранить данные во ViewState больше, чем элементы управления ASP.NET уже делают.Вы должны убедиться, что все, что вы хотите запустить для обновления UpdatePanel, делает это, но вы не указываете никакой путаницы по этому поводу.

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