2016-12-30 12 views
0

私はDotnetNukeの初心者です。私は、DotnetNukeベースのウェブサイトに追加できるモジュールを提供するプロジェクトを作成しています。DotnetNuke(DNN)のModuleプロジェクトにJQueryを追加する方法と場所は?

IISサーバにwww.dnndev.meを設定し、そのプロジェクトをDesktopModuleフォルダに作成しました。ビルドして、www.dnndev.meにモジュールを追加しても問題ありませんが、私のモジュールプロジェクトのソリューションエクスプローラでJQueryをどこに追加するのか分かりません。

1 JSファイルとCSSファイルはどこに追加しますか?私はフォルダ "資産"、 "資産/ CSS"、 "資産/ JS"を追加して、私のソリューションエクスプローラに私のファイルを入れてみました。

2 - JS/CSSファイルをascxページに含めるにはどうすればよいですか? 私は、Webページの私の元に上記ちなみに

<%@ 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" /> 

に従うことによって.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 \資産

しかし、私はASCXデザインページにファイルエクスプローラからCSSまたはJSファイルをドラッグすると、それはこの場所を使用:「〜\ DesktopModules \ CustomerDemo \資産\ file.css」あなたは物理パスがCustomerDemoの2フォルダを持っていることがわかります

1つのCustomerDemoフォルダのみを持つパスを持つソリューションエクスプローラからドラッグされたファイル。

私はこのメカニズムを理解していません。どちらを使うべきですか?誰かがこれについて私の心をきれいにすることはできますか?

私は提案の一つとして、この方法を試してみましたが、私は enter image description here

答えて

0

ではなくDnnCssIncludeのスクリプトを登録するためのクライアントリソース管理のDnnJsIncludeコントロールを使用して何かが欠けていますように見えます。あなたた.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" /> 

OR背後にあるコードで、あなたの代わりに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のファイルの場所です。これはファイルを追加しない理由の1つになります。あなたは私のためにそれを案内してくれますか? –

+0

私を案内してもらえますか?私はJSが期待どおりに動作しないので、気をつけている。 –

+0

南京、上記の例のように、base.ControlPathを使用してascxへの相対パスを取得します。ホスト>ホスト設定でクライアントリソース管理の設定をオフにしている場合は、ページを調べて、スクリプトに正しいパスが含まれているかどうかを調べることができます。 – DotNetNuclear

関連する問題