6

我是 dotnetnuke 的新手,所以我不知道如何将 js 文件与模块链接,控制 dotnetnuke 中的模板。

任何人都可以帮助我吗...

4

3 回答 3

4

如果你想包含 JS 文件,你应该把它们放到你模块中的一个文件夹中(通常是一个 JS 文件夹)

然后在 Codebehind 中,您可以使用以下语法

ClientResourceManager.RegisterScript(Parent.Page, "~/Resources/Shared/scripts/knockout.js");
ClientResourceManager.RegisterScript(Parent.Page, "~/desktopmodules/DnnChat/scripts/moment.min.js");
ClientResourceManager.RegisterScript(Parent.Page, "~/desktopmodules/DnnChat/scripts/DnnChat.js",150);

示例来自:https ://github.com/ChrisHammond/dnnCHAT/blob/master/View.ascx.cs

于 2013-08-22T14:20:13.633 回答
3

我就是这样做的。我构建了这个辅助函数。注意:这需要 DNN 6.1 及更高版本

protected void InsertClientScripts(string scriptUrl, int priority = 100, ScriptLocation scriptLocation = ScriptLocation.Default)
{
    switch (scriptLocation)
    {
        case ScriptLocation.Header:
            ClientResourceManager.RegisterScript(this.Page, scriptUrl, priority, "DnnPageHeaderProvider");
            break;
        case ScriptLocation.BodyTop:
            ClientResourceManager.RegisterScript(this.Page, scriptUrl, priority, "DnnBodyProvider");
            break;
        default:
            ClientResourceManager.RegisterScript(this.Page, scriptUrl, priority, "DnnFormBottomProvider");
            break;
    }
}

public enum ScriptLocation
{
    Header,
    BodyTop,
    Default
}

这将允许您利用内置的客户端依赖框架。如果脚本已经存在,则避免插入脚本,允许压缩,可以指定位置(标题、正文顶部、正文底部),还可以设置脚本优先级。如您所见,默认优先级为 100(数字越小表示位置越高),脚本的默认位置为 body-bottom。祝你好运。

于 2013-08-23T03:00:16.347 回答
0

我不相信 Chris Hammond 的回答会允许它利用允许压缩、最小化和组合文件的客户端依赖框架。所以,我认为最好使用 DNNJsInclude。您可以在此处了解更多信息:http: //www.dotnetnuke.com/Resources/Wiki/Page/Client-Resource-Management-API.aspx

于 2013-08-22T23:12:14.270 回答