2013-08-22 5 views

risposta

4

Se si desidera includere file JS li si dovrebbe mettere in una cartella nel modulo (in genere una cartella di JS)

Poi nel Codebehind è possibile utilizzare la seguente sintassi

ClientResourceManager.RegisterScript(Parent.Page, "~/Resources/Shared/scripts/knockout.js"); 
ClientResourceManager.RegisterScript(Parent.Page, "~/desktopmodules/DnnChat/scripts/moment.min.js"); 
ClientResourceManager.RegisterScript(Parent.Page, "~/desktopmodules/DnnChat/scripts/DnnChat.js",150); 

esempio da: https://github.com/ChrisHammond/dnnCHAT/blob/master/View.ascx.cs

2

Questo è il modo in cui lo faccio. Ho costruito questa funzione di supporto. Nota: questo richiede DNN 6.1 e soprattutto

protected void InsertClientScripts(string scriptUrl, int priority = 100, ScriptLocation scriptLocation = ScriptLocation.Default) 
{ 
    switch (scriptLocation) 
    { 
     case ScriptLocation.Header: 
      ClientResourceManager.RegisterScript(this.Page, scriptUrl, priority, "DnnPageHeaderProvider"); 
      break; 
     case ScriptLocation.BodyTop: 
      ClientResourceManager.RegisterScript(this.Page, scriptUrl, priority, "DnnBodyProvider"); 
      break; 
     default: 
      ClientResourceManager.RegisterScript(this.Page, scriptUrl, priority, "DnnFormBottomProvider"); 
      break; 
    } 
} 

public enum ScriptLocation 
{ 
    Header, 
    BodyTop, 
    Default 
} 

Questo vi permetterà di sfruttare il costruito nel cliente Dipendenza Framework. Si evita di inserire uno script se già esiste, consente la compressione, è possibile specificare la posizione (intestazione, parte superiore del corpo, parte inferiore del corpo) e impostare anche la priorità dello script. Come puoi vedere, la priorità predefinita è 100 (il numero più basso sarà posizionato più in alto) e il percorso predefinito per gli script è body-bottom. In bocca al lupo.