Salve a tutti,
anche oggi sono le 4.00 e sono qui a provare a fare qualcosa per il sito che vorrei sviluppare.

Vengo al punto del mio post.

Ho un controllo calendario di terze parti che uso per recuperare correttamente la data inserita dall'utente. Il controllo è composto da qualche file CSS, che importo nella nella mia pagina tramite l'uso dei Themes, e da qualche file JavaScript, che gestiste tutto il controllo.

Il mio quesisto adesso è questo:
come faccio a far importare alla pagina i file JavaScript visto che uso una Master Page per creare la pagina?

Faccio notare che il controllo in questione non serve in tutte le pagine e vorrei evitare di mandare all'utente file inutili per la navigazione sul sito. Non posso mettere quindi i link nella Master Page, unica per tutto il sito.

Cosa mi consigliate? Esiste una cosa simile ai Themes per i file JavaScript?

Grazie a tutti per l'aiuto che mi date.

Dr. Panetta Luca Jonathan
Pisa (Italy)
http://www.pljsoftware.com
http://pljluca.blogspot.com
http://www.perledellojonio.it
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Se vuoi modificare il foglio di stile nella masterpage puoi usare un trucco molto semplice. La master page la definisci in questo modo:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server" id="header">
<link id="stile" runat="server" type="text/css" />
</head>
<body>

Nel codice della pagina che utilizza questa masterpage, scrivi n C#:
void Page_Load()
{
HtmlLink lnk = (HtmlLink)Master.FindControl("stile"); if (lnk != null) lnk.Href = "tuo_foglio_di_stile.css"; }

O in VB:

Sub Page_Load()
dim lnk as HtmlLink=ctype(Master.FindControl("stile"),HtmlLink) if not lnk is nothing then lnk.Href="tuo_foglio_di_stile.css"; end sub

Se vuoi aggiunere un foglio di stile a quello già presente le cose si complicano leggermente. Io utilizzo questa tecnica, ma non escludo che ci sia qualche "modo" più veloce per fare la stessa cosa.

La masterpage la definisco così:

<%@ Master Language="C#" ClassName="azza" %>
<script runat="server">
public HtmlHead Header
{
get { return header; }
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server" id="header">
<link id="stile" runat="server" type="text/css" />
</head>
<body>
....

(Nota l'aggiunta della definizione del nome della classe per la master page).

Nel codice nella pagina che utilizzerà questa master page scrivo in C#:
<%@ Page Language="C#" MasterPageFile="~/master/MasterPageX.master" Title="xxx" %>
<script runat="server">
void Page_Load()
{
azza wa = (azza)Master;
wa.Header.Controls.Add(new LiteralControl("<link type='text/css' href='mio_style.css' />"));
}
</script>
....

O in VB:

<%@ Page Language="VB" MasterPageFile="~/master/MasterPageX.master" Title="xxx" %>
<script runat="server">
Sub Page_Load()
dim wa as azza= ctype(Master,azza)
wa.Header.Controls.Add(new LiteralControl("<link type='text/css' href='mio_style.css' />"))
end sub
</script>
....

Nel literalcontrol aggiungo la stringa contenente il link per il nuovo foglio di stile lasciando inalterati quelli presenti.

Ciao
Ciao Andrea,
grazie per la risposta ma a me non serve importare più file CSS ma solo importare una serie di file JavaScript e preferibilmente vorrei evitare di stare a scrivere codice che un giorno magari dovrei modificare a causa di qualche spostamento di cartelle.

Rinnovo il mio quesito
come faccio a far importare alla pagina i file JavaScript visto che uso una Master Page per creare la pagina?

I file JavaScript che devo importare sono nella cartella calendario.

Grazie a tutti.

Dr. Panetta Luca Jonathan
Pisa (Italy)
http://www.pljsoftware.com
http://pljluca.blogspot.com
http://www.perledellojonio.it
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Rinnovo il mio quesito
*come faccio a far importare alla pagina i file JavaScript visto che uso una Master Page per creare la pagina?*

Usi la stessa procedura spiegata con il secondo metodo, ma includi un file Js invece di css:

<%@ Page Language="C#" MasterPageFile="~/master/MasterPageX.master" Title="xxx" %>
<script runat="server">
void Page_Load()
{
azza wa = (azza)Master;
wa.Header.Controls.Add(new LiteralControl("<link type='text/jscript' href='mio_script.js' />"));
}
</script>
....

Ciao
Ciao Andrea,
si, hai ragione tu, scusa se ho replicato forse in malo modo. Ho pensato che potevo usare la stessa procedura per i file JS mentre ero sotto la doccia.

Ma non esiste un sistema differente? Sai per caso dove posso cercare?

Ho visto che in ASP.Net 2.0 ci sono delle nuove cartelle dell'applicazione come App_Code, App_Themes, App_Browsers etc... dove centrano qualcosa per caso con il mio problema? Sai dove posso reperire materiale su queste?

Grazie e scusa ancora se nel post precedente ho replicato in quel modo.

Dr. Panetta Luca Jonathan
Pisa (Italy)
http://www.pljsoftware.com
http://pljluca.blogspot.com
http://www.perledellojonio.it
pljluca wrote:
Ma non esiste un sistema differente? Sai per caso dove posso cercare?

perchè te ne serve uno differente?

Ho visto che in ASP.Net 2.0 ci sono delle nuove cartelle dell'applicazione come App_Code, App_Themes, App_Browsers etc... dove centrano qualcosa per caso con il mio problema? Sai dove posso reperire materiale su queste?

trovi questo ed altro su
http://www.aspitalia.com/articoli/asp.net2/introduzione.aspx
Grazie e scusa ancora se nel post precedente ho replicato in quel modo.

andrea ci è abituato, ti do' il permesso di trattarlo anche peggio!

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
"Daniele Bochicchio [MVP] [Staff]"
<Daniele_Bochicchio> ha scritto nel messaggio news:257063@...
Grazie e scusa ancora se nel post precedente ho replicato in quel modo.

andrea ci è abituato, ti do' il permesso di trattarlo anche peggio!

DANIELE!!!!
Daniele Bochicchio ha scritto:
pljluca wrote:
Ma non esiste un sistema differente? Sai per caso dove posso cercare?

perchè te ne serve uno differente?


Vorrei usare un sistema differente perché in questo modo se sposto la cartella calendario da un'altra parte non devo cambiare tutte le pagine in cui uso il controllo calendario ma solo indicare il nuovo percorso come faccio per i CSS usando i Theme.

Ora che sono in argomento, esiste un modo per associare ad un tema oltre che file CSS dei file JS? In questo modo eviterei un sacco di problemi visto che il controllo calendario include dei file CSS.


Grazie e scusa ancora se nel post precedente ho replicato in quel modo.

andrea ci è abituato, ti do' il permesso di trattarlo anche peggio!


La prossima volta allora vado a casa sua, lo incateno e lo frusto a sangue  spero possa bastare!

Dr. Panetta Luca Jonathan
Pisa (Italy)
http://www.pljsoftware.com
http://pljluca.blogspot.com
http://www.perledellojonio.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.