Лучший способ динамической загрузки серверных элементов управления из jQuery / Javascript - PullRequest
0 голосов
/ 27 ноября 2011

Я видел несколько других вопросов подобного рода, но без однозначных ответов.

Я ищу лучший способ загрузить серверные элементы управления asp.net (или пользовательские элементы управления).из клиентского скрипта (скорее всего, jQuery).Я создаю небольшую панель инструментов, которая будет содержать несколько элементов управления / элементов управления, созданных в результате вызова клиентского скрипта, и элементы управления должны будут иметь возможность запускать функции на стороне сервера, а не просто элементы управления отображением информации.

Iнедавно сделали нечто подобное с загрузкой details элементов управления, которые были визуализированы с помощью HttpHandler из jQuery $.get(), и полученный HTML-код элемента управления вставлен в область DIV - однако они использовали пользовательскую бесформенную страницу в качестве временного заполнителячтобы не мешать текущему циклу просмотра состояния / рендеринга на странице, чтобы они могли использовать только HTML-элементы, такие как гиперссылки и т. д.

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

Я видел, как некоторые люди говорят, что тыдействительно мог бы использовать UpdatePanel для этого и выполнять обработку на стороне сервера - но я не хочу этого делать, поскольку одно из требований тесно связано с использованием клиентского скрипта.

1 Ответ

0 голосов
/ 27 ноября 2011

Я немного поэкспериментировал с этим и чувствую, что ASP.Net отслеживание состояния серверных элементов управления действительно ограничивает, когда дело доходит до таких вещей.

Если это простой диалог, такой как вход в систему симя пользователя и пароль. Я могу порекомендовать вам использовать метод страницы или обработчик ashx , с которым javascript может взаимодействовать, а затем просто создать все взаимодействие с сервером разметки + на стороне клиента.script.

Но поскольку вы создаете более сложное решение, я бы дал вам совет, который уже предлагали люди: Используйте UpdatePanels.

Вы всегда можете подключить клиентские сценарии, которые выполняются до postBack(который показывает элементы управления на стороне сервера), этот клиентский сценарий может контролировать, должен ли postBack запускаться или нет и т. д. Кроме того, вы можете также заставить серверную часть кода вызывать сценарии на стороне клиента после его рендеринга.

Подобные вещи заставляют вас ценить ASP .Net MVC.

...