Как добавить лайтбокс в пользовательский модуль DotNetNuke

Я работаю над пользовательским модулем DotNetNuke, который требует использования Lightbox. Каков наилучший способ добавить JavaScript, необходимый для Lightbox в модуль DNN?

Почти все решения, которые я видел, включают добавление ссылок javascript в файл скина. Есть ли другой способ сделать это? Я бы не хотел, чтобы эти файлы javascript загружались даже для модулей, которые в них не нуждаются.

================================================== ===================

Благодаря помощи Spinon, вот решение, которое я использую:

Dim csMgr As ClientScriptManager = Page.ClientScript
Dim Name As String = "prototype.js"
Dim ScriptPath As String = "http://dnn/js/prototype.js"
Dim Type As Type = Me.GetType

'check if script is already registered
If Not csMgr.IsClientScriptBlockRegistered(Type, Name) Then
    Dim scriptText As New StringBuilder

    scriptText.AppendLine()
    scriptText.Append("<script src=""")
    scriptText.Append(ScriptPath)
    scriptText.Append(""" type=""text/javascript""></script>")
    scriptText.AppendLine()

    'register script
    csMgr.RegisterClientScriptBlock(Me.GetType, Name, scriptText.ToString())
End If

1 ответ

Решение

Ну, вы всегда можете просто включить их прямо в ваш модуль, если это только для определенных модулей. Получающийся HTML не будет красивым, но это одно из решений.

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

В любом случае оба решения позволят избежать загрузки js для всех страниц, что произойдет, если вы поместите его в скин.

РЕДАКТИРОВАТЬ: Вот информация о классе:

Page.ClientScript.RegisterClientScriptBlock(....); 

http://msdn2.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.registerclientscriptblock.aspx

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