Jak mogę dołączyć niestandardowe css & JavaScript dla konkretnego modułu w DotnetNuke?CSS w modułach DNN
Rozumiem, że to nie jest tak jak normalna strona ASP.Net.
Jak mogę dołączyć niestandardowe css & JavaScript dla konkretnego modułu w DotnetNuke?CSS w modułach DNN
Rozumiem, że to nie jest tak jak normalna strona ASP.Net.
Jeśli moduł ma plik o nazwie module.css
w katalogu głównym folderu, zostanie automatycznie dołączony do strony z modułem.
Dla innych CSS i dla JavaScript, powinieneś użyć Client Resource Management framework, aby dołączyć odpowiednie zasoby. Coś takiego:
<%@ 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" />
Aby dodać zewnętrznego JavaScript do modułu niestandardowego:
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);
To jest bardzo ręczne i nie będzie skalowane. DNN ma API do robienia tego samego przy użyciu Client Dependency Framework, aby umożliwić minimalizację, agregację i buforowanie, z mniejszą ilością kodu, większą powtarzalnością kodu i większą skalowalnością. –
Hi! Znalazłem twoją odpowiedź na temat DnnCssInclude i użyłem jej i działa prawie idealnie. Mam jednak niewielki problem i zastanawiałem się, czy mógłbyś pomóc. Mój przypadek: Mam kontrolę, która zawiera kreator asp.net i używam niestandardowego css dla kreatora. Kiedy ładuje się po raz pierwszy, niektóre css (nie wszystkie) nie ładują się poprawnie (zobacz zrzut ekranu tutaj: http://awesomescreenshot.com/0293xq5k49). Kiedy kliknę przycisk na stronie, następuje odświeżenie strony, a następnie css zostanie poprawnie zastosowany (sprawdź zrzut ekranu tutaj: http://awesomescreenshot.com/0773xq5t90). jakieś pomysły? –
@PanagiotisPalladinos Myślę, że jeśli ładuje się jakiś CSS, prawdopodobnie jest to konflikt z czymś innym na stronie, a nie problem z ładowaniem CSS – bdukes