Как добавить лайтбокс в пользовательский модуль DotNetNuke - PullRequest
0 голосов
/ 27 июля 2010

Я работаю над пользовательским модулем 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 Ответ

1 голос
/ 27 июля 2010

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

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

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

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

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

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

...