Добавить скрипт с ScriptManager на CompositeControl?

Я пытаюсь вызвать мой старый добрый RegisterClientScriptBlock в дружественном классе ScriptManager.

Это просто не работает для моего CompositeControl? Я использую его на обычном пользовательском контроле (ascx), где он работает.

Visual Studio просто не примет меня, набрав "ScriptManager", или я получу "Имя" ScriptManager "не существует в текущем контексте", если я это сделаю и попытаюсь скомпилировать. Что не так - у меня есть ссылки на System.Web.UI, и я даже получил резарпер, чтобы помочь мне добавить его (и оператор using) - если бы он только был там.

Итак, что-то очень простое и логика идет вниз, мне просто нужно знать, что...

Есть идеи?

Я получил Visual Studio 2008 с пакетом обновления 1 (SP1).

РЕДАКТИРОВАТЬ: CompositeControl, который не работает, на самом деле является простой библиотекой классов и не является частью веб-приложения, которым естественным образом является файл ascx. Я знаю, что это может вызвать проблемы, так как мне нужно было бы как-то установить ссылку на страницу - я попытался посмотреть на ClientScriptManager, но его конструктор является внутренним, указывая, что он используется где-то как внутри ScriptManager, - но он также намекает на то, что может быть вход, поступающий из библиотека классов (без ссылки на время компиляции на объект Page)

1 ответ

Решение
ClientScriptManager cs = Page.ClientScript;
cs.RegisterClientScriptBlock(GetType(), "GenerateMatrixText", script, true);

Наконец-то нашел это:)

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