Зарегистрироваться / включить JavaScript в RenderingTemplate - PullRequest
2 голосов
/ 24 марта 2010

Описание проблемы

Можно ли зарегистрировать (включить) javascript в RenderingTemplate ? (RenderingTemplates используются для визуализации списков форм или полей) Используя

<SharePoint:RenderingTemplate ID="NewRelatedListItem" runat="server">
  <Template>
    <span id="part1">
      <SharePoint:ScriptLink Name="SPFormFieldAssistant.js" Localizable="false" /> 
      ...
    </span>
    ...
  </Template>
</SharePoint:RenderingTemplate>

это не может быть сделано - это не включает скрипт в области HEAD, но ...:

Источник http://img62.imageshack.us/img62/9826/ss20100324092808.png

Что-то не так с моим кодом? Сценарий Althought находится в папке Layouts, и я с помощью Reflector проверил, использует ли он папку Layouts, если Localizable = 'False'.

Я не хочу, чтобы этот скрипт загружался с каждой страницы, а только для форм.

Есть идеи о том, как этого можно достичь?

Моя идея, что не работает ...

Моей первой идеей было добавить script программно с <% this.Page.ClientScript.RegisterClientScriptInclude("spffa", "/_layouts/SPFormFieldAssistant.js") %>, но это не работает, так как эта оценка кода происходит в методе Render, и я читал где-то, что вы не можете зарегистрировать клиентские скрипты в методе Render, но обычно это делается в методе PreRender. Жалость

Моя вторая идея, которая все еще не работает

Я думал, что создам пользовательский UserControl с именем RegisterClientScript, и там в переопределенном методе PreRender я бы добавил нужные мне скрипты с помощью менеджера клиентских скриптов (this.Page.ClientScript ...), но, как и в SharePoint: ScriptLink, мой элемент управления также отображается как текст! мой контроль как текст http://img693.imageshack.us/img693/3738/ss20100324115826.png

Как мне преодолеть это и где подвох?

Ответы [ 3 ]

3 голосов
/ 24 марта 2010

Похоже, вам не хватает руната. Попробуйте это:

<SharePoint:ScriptLink Name="SPFormFieldAssistant.js" Localizable="false" runat="server" />
2 голосов
/ 24 марта 2010

Оказывается, вы можете напрямую добавлять <script> теги в шаблон!

<script src="/_layouts/SPFormFieldAssistant.js" type="text/javascript"></script>

Спасибо за заметки, однако.

1 голос
/ 24 марта 2010

Некоторое время назад у меня было аналогичное требование. Для которого я включил скрипт Register в метод CreateChildControls класса Field Control.

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