2010-12-01 4 views
2

Dans une classe de base, le pré-rendu ajoute un Javascript à la page. Dans ma classe dérivée, je veux remplacer le Javascript par un de mes propres scripts de ressources.Comment supprimer Client Script Resource dans le cycle de vie?

Si le script est ajouté comme celui-ci dans la classe de base:

this.Page.ClientScript.RegisterClientScriptResource(typeof(GeomappingEditor), "SomeSpace.Resources.Scripts.Geomapping.js"); 

Alors puis-je faire quelque chose comme ceci:

protected override void OnPreRender(EventArgs e) 
{ 
    base.OnPreRender(e); 

    //HOW TO OVERWRITE JAVASCRIPT FILE HERE? 
} 

La raison pour laquelle je pensais que cela peut être possible est parce que parfois Javascript est ajouté sur une page avec une clé comme ceci:

this.Page.ClientScript.RegisterClientScriptInclude("geomapping", this.ApiScript); 

Donc je sais que je peux ajouter un autre script dans la page avec "geomapping" étant la clé et il écrasera le script précédent. Mais il ne semble pas qu'il y ait une clé comme celle-ci pour "RegisterClientScriptResource". Des idées sur la façon d'y parvenir?

Répondre

1

Dans la classe de base, ajoutez une méthode virtuelle/redéfinissable pour enregistrer le script et, dans la classe de base, remplacez cette méthode et n'appelez pas l'implémentation de base. Cela l'annulerait.

ALS,