2016-12-30 110 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

相關問題