2016-12-30 108 views
0

我是DotnetNuke的初学者。我正在创建一个项目,提供一个可以添加到基于DotnetNuke的网站的模块。在DotnetNuke(DNN)的Module项目中如何以及在哪里添加JQuery?

我在我的IIS服务器上配置了www.dnndev.me,并在它的DesktopModule文件夹中创建了项目。我可以成功创建,构建和添加我的模块到www.dnndev.me,但我不知道在我的模块项目的解决方案资源管理器中添加JQuery的位置。

1-我应该在哪里添加我的JS和CSS文件?我试着添加一个文件夹“Assets”,“Assets/CSS”,“Assets/JS”,并将我的文件放在我的解决方案资源管理器中。

2-如何在ascx页面包含JS/CSS文件? 我已经在我的网页的源.js显示以下

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="View.ascx.cs" Inherits="CustomerDemo.Modules.CustomerDemo.View" %> 
<dnn:DnnCssInclude runat="server" FilePath="~/DesktopModules/CustomerDemo/Assets/JS/fullcalendar.min.js" /> 
<dnn:DnnCssInclude runat="server" FilePath="~/DesktopModules/CustomerDemo/Assets/JS/jquery-ui-timepicker-addon.js" /> 

通过以上方式很累,但是它不调用。但是,如果我试图通过以下方式,它的工作原理

<script type="text/javascript"> 
    $(document).ready(function() { $.getScript("http://www.dnndev.me/DesktopModules/CustomerDemo/Assets/JS//jquery-ui-timepicker-addon.js?_=1483026285109", function() { 
      if ($('.mmdd').length > 0) { 
       $(".mmdd ").datetimepicker(); 
      } 
     }); 
    }); 
</script> 

可有人请建议我如何以及在哪里放置.js和”的.css'文件,以及如何将它们纳入项目?

我使用:的Visual Studio 2015年& DotNetNuke的8 Commnunity

文件路径的困惑:

这是文件夹的我的地理位置时,我通过右键点击打开 - >打开文件夹用探险家

F:\网站\ dnndev.me \ DesktopModules \ CustomerDemo \ CustomerDemo \资产

但是,当我从文件管理器拖放CSSJS文件ASCX设计页面时,它使用此位置:“〜\ DesktopModules \ CustomerDemo \资产\ file.css”

你可以看到物理路径具有CustomerDemo的2文件夹并从具有唯一CustomerDemo文件夹的路径解决方案资源管理器拖动文件。

我不明白这个机制。我应该使用哪一个?有人能为此澄清我的想法吗?

我已经尝试了这种方式的建议之一,但它看起来像我失去了一些东西 enter image description here

回答

0

使用DnnJsInclude控制客户资源管理的用于注册脚本,而不是DnnCssInclude

在你的.ascx:

<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %> 

<dnn:DnnJsInclude runat="server" FilePath="~/DesktopModules/CustomerDemo/Assets/JS/fullcalendar.min.js" /> 

或后面的代码,你可以改用ClientResourceManager API:

protected void Page_PreRender(object sender, EventArgs e) 
{ 
    ClientResourceManager.RegisterScript(this.Page, base.ControlPath + "/Assets/JS/fullcalendar.min.js", 100); 
    ClientResourceManager.RegisterScript(this.Page, base.ControlPath + "/Assets/JS/jquery-ui-timepicker-addon.js", 100); 
    ClientResourceManager.RegisterStyleSheet(this.Page, base.ControlPath + "/Assets/CSS/module.css", 100); 
} 
+0

您好,感谢。在这种情况下,我有另一个文件路径混淆。我在我的问题中添加了更多信息。它是关于CSS和JS的文件位置。这可能是不添加文件的原因之一。你能指导我吗? –

+0

你能指导我吗?我死定了,因为我的JS都没有按预期工作。 –

+0

Nanji,使用base.ControlPath获取ascx的相对路径,就像我在上面的例子中那样。如果您在“主机>主机设置”中关闭了“客户端资源管理”设置,那么您应该能够看到该页面并查看脚本是否包含正确的路径。 – DotNetNuclear

相关问题