Что эквивалентно IScriptControl для Web.UI.Page?

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

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

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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам