Добавление сценария с ScriptManager на CompositeControl? - PullRequest
1 голос
/ 17 ноября 2008

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

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

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

Хорошо, теперь что-то очень простое и логика выходит из строя, мне просто нужно знать, что ...

Есть идеи?

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

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

1 Ответ

1 голос
/ 17 ноября 2008
ClientScriptManager cs = Page.ClientScript;
cs.RegisterClientScriptBlock(GetType(), "GenerateMatrixText", script, true);

Наконец нашел его:)

...