Menu

A

|

A

Référencer des scripts dans une MasterPage

Il m’est arrivé récemment d’avoir un problème de référencement de me scripts JavaSript dans ma MasterPage. En effet ayant une arborescence compliquée (cf. ci-dessous), les chemins des fichiers se perdent un peu au moment du rendu.

> Site (Contient des pages qui implémente mes MasterPage)
> Scripts (Contient mes fichiers js)
> Master (Contient mes MasterPage)
> CollectionPage1 (Contient des pages qui implémente mes MasterPage)
> CollectionPage2 (Contient des pages qui implémente mes MasterPage)
> CollectionPage3 (Contient des pages qui implémente mes MasterPage)

La question est donc : Comment référencer des scripts dans une MasterPage afin que le chemin soit toujours juste, et ce, peux importe ou se trouve ma page dans mon arborescence projet ? La réponse est de référencer les scripts dans l’événement Page_PreRender de la MasterPage (ou page) et faire un ResolveUrl sur le chemin du script, afin qu’a chaque rendu, la MasterPage puisse trouver le script sans problème, peut importe la page qui l’appelle.

protected void Page_PreRender(object sender, EventArgs e)
{
    this.Page.ClientScript.RegisterClientScriptInclude("MonScript1", this.ResolveUrl("~/Scripts/MonScript1.js"));
    this.Page.ClientScript.RegisterClientScriptInclude("MonScript2", this.ResolveUrl("~/Scripts/MonScript2.js"));
    this.Page.ClientScript.RegisterClientScriptInclude("MonScript3", this.ResolveUrl("~/Scripts/MonScript3.js"));
}

Référencer des scripts dans une MasterPage

Il m’est arrivé récemment d’avoir un problème de référencement de me scripts JavaSript dans ma MasterPage. En effet ayant une arborescence compliquée (cf. ci-dessous), les chemins des fichiers se perdent un peu au moment du rendu.

> Site (Contient des pages qui implémente mes MasterPage)
> Scripts (Contient mes fichiers js)
> Master (Contient mes MasterPage)
> CollectionPage1 (Contient des pages qui implémente mes MasterPage)
> CollectionPage2 (Contient des pages qui implémente mes MasterPage)
> CollectionPage3 (Contient des pages qui implémente mes MasterPage)

La question est donc : Comment référencer des scripts dans une MasterPage afin que le chemin soit toujours juste, et ce, peux importe ou se trouve ma page dans mon arborescence projet ? La réponse est de référencer les scripts dans l’événement Page_PreRender de la MasterPage (ou page) et faire un ResolveUrl sur le chemin du script, afin qu’a chaque rendu, la MasterPage puisse trouver le script sans problème, peut importe la page qui l’appelle.

protected void Page_PreRender(object sender, EventArgs e)
{
    this.Page.ClientScript.RegisterClientScriptInclude("MonScript1", this.ResolveUrl("~/Scripts/MonScript1.js"));
    this.Page.ClientScript.RegisterClientScriptInclude("MonScript2", this.ResolveUrl("~/Scripts/MonScript2.js"));
    this.Page.ClientScript.RegisterClientScriptInclude("MonScript3", this.ResolveUrl("~/Scripts/MonScript3.js"));
}

No Comments

Comments Are Closed