от
У меня проблема с сохранением состояния на страницы AJAX ASP.NET . Короткая версия: я нужен способ, чтобы обновить отображение страницы после асинхронный обратный вызов был сделан, чтобы отразить любые изменения состояния сервера, сделанные во время асинхронного вызова. Это, кажется, общая проблема, но я опишу свой сценарий, чтобы помочь объяснить: У меня есть сетки, как контроль, который имеет некоторые JavaScript усовершенствования, а именно - возможность перетаскивания столбцов и строк. Когда столбец или строку в новое место, метод Аякс вызывается для уведомления серверный элемент управления и пожарной соответствующее событий на стороне сервера ("OnColumnMoved" или "OnRowMoved"). ASP.NET AJAX-вызовы, по умолчанию отправить всю страницу, как запрос. Таким образом, страница проходит через полный цикл, состояние представления сохраняется и государственного управления восстанавливается до метод RaiseCallbackEvent вызывается. Однако, поскольку AJAX-вызов не обновляет страницы, отображение отражает исходное состояние контроля, даже после столбца или строки был тронут. Так что второй раз на стороне клиента действие происходит AJAX-запрос идет на сервер и страницы

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

6 Ответы

0 голосов
от
У меня проблема с сохранением состояния на страницы AJAX ASP.NET . Короткая версия: я нужен способ, чтобы обновить отображение страницы после асинхронный обратный вызов был сделан, чтобы отразить любые изменения состояния сервера, сделанные во время асинхронного вызова. Это, кажется, общая проблема, но я опишу свой сценарий, чтобы помочь объяснить: У меня есть сетки, как контроль, который имеет некоторые JavaScript усовершенствования, а именно - возможность перетаскивания столбцов и строк. Когда столбец или строку в новое место, метод Аякс вызывается для уведомления серверный элемент управления и пожарной соответствующее событий на стороне сервера ("OnColumnMoved" или "OnRowMoved"). ASP.NET AJAX-вызовы, по умолчанию отправить всю страницу, как запрос. Таким образом, страница проходит через полный цикл, состояние представления сохраняется и государственного управления восстанавливается до метод RaiseCallbackEvent вызывается. Однако, поскольку AJAX-вызов не обновляет страницы, отображение отражает исходное состояние контроля, даже после столбца или строки был тронут. Так что второй раз на стороне клиента действие происходит AJAX-запрос идет на сервер и страницы
0 голосов
от
Если ты уже в любом случае перетасовки отображение вокруг, вы могли бы также использовать UpdatePanel и. Его частичной обратной передачи будет обновлять страницы ViewState автоматически.
0 голосов
от
Проверить это сообщение в блоге: настройки ICallbackEventHandler и ViewState. Автор, по-видимому, решает сама ситуация, что вы испытываете: Поэтому при использовании ICallbackEventHandler у вас есть два препятствия, которые нужно преодолеть, чтобы обновили государственного управления для обратных вызовов. Первая-это проблема только для чтения, просмотра состояния. На самом деле регистрировать изменения, которые пользователь внес в страницы перед началом обратного вызова. Смотрите в блоге на его предложения о том, как решить эту проблему. Кроме того, проверить этот пост на форуме, в котором обсуждается та же проблема.
0 голосов
от
Я нашел обе эти ссылки вы указали, но отметили, что они являются просто описанием проблемы, а не решаем ее. Автор блога предполагает решение с помощью другого отображение провайдера, но к сожалению это не возможно в данном случае...мне действительно нужно оставить данные в ViewState в покое и просто крючок на то, что делается из-из-коробки.
0 голосов
от
Я нашел довольно элегантное решение с RadAjaxManager из Telerik по. Она работает довольно хорошо, по сути вы регистрируетесь каждого элемента управления, которые могут вызвать обратную передачу, а затем зарегистрировать каждого элемента управления, который должен быть повторно привлечено после того, что обратная передача выполняется асинхронно. В RadAjaxManager будет обновлять дом после асинхронной обратной передачи и переписать ViewState и все соответствующие элементы управления. После того, как заглянуть в рефлектор, это выглядит немного запутано под капотом, но вполне подойдет для моих целей.
0 голосов
от
Я не понимаю, почему вы бы использовать пользовательский элемент управления, когда ASP.NET встроенные UpdatePanel и AJAX делает то же самое. Он просто добавляет больше сложности, дает вам меньшую поддержку, и делает его более трудным для других, чтобы работать в вашем приложении.
...