Что эквивалентно IScriptControl для Web.UI.Page? - PullRequest
0 голосов
/ 02 апреля 2010

Мы использовали IScriptControl для связывания объектов javascript с нашими UserControls и ServerControls, и это работало нормально.

Проблема в том, что ASP.NET, по-видимому, не предоставляет метода для привязки объекта JavaScript к странице. До сих пор мы помещали простые функции в глобальное пространство имен, но у меня развивается серьезная аллергия на эту практику.

Было бы достаточно легко обернуть наши функции в класс javascript и включить файл javascript на страницу, но как создать экземпляр объекта, как ссылаться на него из событий обратного вызова и как передавать в него данные из-за кода я не понял.

Вернее, методы, которые мы использовали до сих пор (скрытые поля, передаваемые строки javascript и т. Д.), Действительно меня беспокоят.

У кого-нибудь есть идеи получше?

1 Ответ

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

Нет никакой связи между файлом JS и страницей, если вы не создадите его. Для элементов управления сценариями обычная практика хранения состояния - это скрытые поля (в ACT используется этот подход). Единственный другой способ связи с сервером - через вызов веб-службы, форму опубликованных данных или вызов __doPostBack (но это не AJAX).

Вы можете создать базовую архитектуру, чтобы связать их вместе. С помощью элементов управления сценарием сервер отображает оператор $ create для передачи свойств и обработчиков событий с сервера на клиент; данные, отправляемые обратно на сервер, хранятся в скрытых переменных и обрабатываются на клиенте (с большинством библиотек сценариев), поэтому элементы управления сценариями и ACT скрывают многое из этого для вас, и вам придется создать часть этого, если вы хотите автоматизировать это. Это может помочь изучить взаимодействие клиент-сервер, чтобы дать вам представление о том, что делать, если вы хотите настроить это.

Забавно, я думал об одном и том же для моего проекта Nucleo (моей сторонней библиотеки) на codeplex, но я еще не дошел до этого.

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