如何将Lightbox添加到自定义DotNetNuke模块

时间:2010-07-26 22:05:36

标签: .net javascript lightbox dotnetnuke

我正在开发一个需要使用Lightbox的自定义DotNetNuke模块。将Lightbox所需的javascript添加到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 个答案:

答案 0 :(得分:1)

如果仅适用于某些模块,您可以随时将它们直接包含在模块中。生成的HTML不会很漂亮,但这是一个解决方案。

或者从.net代码访问.net脚本管理器。我现在忘记了类名,但你可以加载脚本。

无论哪种方式,两种解决方案都可以避免为所有页面加载js,如果将其放入皮肤中会发生这种情况。

编辑:这是班级信息:

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

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