Альтернативы UpdatePanel на пользовательском элементе управления (страница ASCX) - PullRequest
2 голосов
/ 25 марта 2010

В настоящее время я работаю над приложением ASP.NET AJAX. Решив не использовать UpdatePanels по понятным причинам, какие у меня есть альтернативы? В этом приложении динамически создаются страницы, поэтому большинство или все компоненты страницы существуют как пользовательские элементы управления.

Мне нужно совершать AJAX-вызовы со страницы управления пользователями ASCX. А так как пользовательские элементы управления ASCX могут не содержать методы страницы, какие еще варианты у меня есть?

Или есть ли способ обойти использование методов страницы на странице ASCX?

Ответы [ 3 ]

2 голосов
/ 25 марта 2010

Вы не можете вызывать веб-методы с UserControl, как вы сказали. Причина этого заключается в том, что методы, отмеченные атрибутом WebMethod, также должны быть статическими. UserControls не поддерживают это. Если вы не хотите использовать UpdatePanel, у вас не так много вариантов.

Вы можете сделать AJAX звонки через jQuery на web services? Это был бы один из вариантов ...

UpdatePanel элементы управления, используемые с UpdateMode="Conditional", дают вам довольно хороший контроль над тем, что происходит с обратными вызовами, и все еще являются разумным решением. Он не будет таким легким, как прямой вызов ajax, но будет прост в обслуживании и т. Д.

0 голосов
/ 07 апреля 2010

Лучший способ (который я обнаружил) - это 1. Разместите ваши PageMethods на родительской странице 2. Когда PageMethod завершит работу, сообщите вашему пользовательскому элементу управления через метод JS, что он может завершить вызов PageMethod. 3. Затем на пользовательском элементе управления может быть реализован ICallbackHandler для выполнения обратного вызова AJAX для метода пользовательского элемента управления

.

В моем случае мне нужно обновить некоторые значения в пользовательском элементе управления после выполнения PageMethods, поэтому я создаю свой пользовательский элемент управления с помощью HtmlOutputWriter для обновления содержимого.

У меня работает!

0 голосов
/ 25 марта 2010

jQuery AJAX - моя рекомендация, использование веб-сервисов обеспечивает хорошее решение.

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