2012-12-08 5 views
6

Wie könnte ich die benutzerdefinierte CSS & JavaScript für bestimmte Modul in DotnetNuke?CSS In DNN Module

Ich verstehe, dass es nicht wie normale ASP.Net Seite ist.

Antwort

15

Wenn Ihr Modul eine Datei mit dem Namen module.css im Stammverzeichnis des Modulordners hat, wird diese automatisch auf der Seite mit dem Modul angezeigt.

Für andere CSS und für JavaScript sollten Sie die Client Resource Management framework verwenden, um die gewünschten Ressourcen einzuschließen. Etwas wie folgt aus:

<%@ Register TagPrefix="dnn" 
    Namespace="DotNetNuke.Web.Client.ClientResourceManagement" 
    Assembly="DotNetNuke.Web.Client" %> 
  
<dnn:DnnCssInclude runat="server" 
    FilePath="~/DesktopModules/MyModule/css/the-style.css" /> 
<dnn:DnnJsInclude runat="server" 
    FilePath="~/DesktopModules/MyModule/js/the-script.js" 
    ForceProvider="DnnFormBottomProvider" /> 
+0

Hallo! Ich habe deine Antwort über das DnnCssInclude gefunden und benutzt es und es funktioniert fast perfekt. Ich habe jedoch ein kleines Problem und ich habe mich gefragt, ob Sie mir helfen könnten. Mein Fall: Ich habe ein Steuerelement, das einen asp.net-Assistenten enthält, und ich verwende ein benutzerdefiniertes CSS für den Assistenten. Wenn es zum ersten Mal geladen wird, werden einige der CSS (nicht alle) nicht korrekt geladen (siehe Screenshot hier: http://awesomescreenshot.com/0293xq5k49). Wenn ich auf einen Knopf klicke, macht die Seite einen Postback und dann wird die CSS korrekt angewendet (siehe Screenshot hier: http://awesomescreenshot.com/0773xq5t90). Irgendwelche Gedanken? –

+0

@PanagiotisPalladinos Ich denke, wenn etwas von der CSS geladen wird, ist es wahrscheinlich ein Konflikt mit etwas anderem auf der Seite, als ein Problem mit, wie Sie Ihre CSS laden – bdukes

-2

Hinzufügen externen JavaScript zu einem benutzerdefinierten Modul:

string externaJs= "externaJs"; 
Type cstype = System.Reflection.MethodBase.GetCurrentMethod().GetType(); 
string cstext = "<script src=\"" + 
       ResolveUrl("~/DesktopModules/ModuleName/js/JsName.js") + 
       "\" type=\"text/javascript\"></script>"; 

if (!Page.ClientScript.IsClientScriptBlockRegistered(externaJs)) 
    Page.ClientScript.RegisterClientScriptBlock(cstype, externaJs, cstext, false); 
+0

Dies ist sehr manuell und wird nicht gut skalieren. DNN verfügt über eine API, die dasselbe mit dem Client-Abhängigkeits-Framework durchführt, um eine Minimierung, Aggregation und Zwischenspeicherung zu ermöglichen, mit weniger Code, mehr Wiederverwendbarkeit des Codes und mit besserer Skalierbarkeit. –