2010-12-01 3 views
2

In einer Basisklasse fügt das Pre-Rendering der Seite ein Javascript hinzu. In meiner abgeleiteten Klasse möchte ich das Javascript durch eines meiner eigenen Ressourcen-Skripts ersetzen.Wie Client Script Ressource im Lebenszyklus zu entfernen?

Wenn das Skript wie folgt hinzugefügt in der Basisklasse wird:

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

Dann kann ich etwas tun, wie folgt aus:

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

    //HOW TO OVERWRITE JAVASCRIPT FILE HERE? 
} 

Der Grund, warum ich dachte, dies möglich sein kann, liegt daran, manchmal wird Javascript auf eine Seite mit einem Schlüssel wie folgt hinzugefügt:

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

Also ich weiß, dass ich kann fügen Sie ein weiteres Skript auf der Seite hinzu, wobei "Geomapping" der Schlüssel ist und das vorherige Skript überschrieben wird. Aber es scheint nicht so einen Schlüssel für "RegisterClientScriptResource" zu geben. Irgendwelche Ideen, wie man das erreicht?

Antwort

1

Fügen Sie in der Basisklasse eine virtuelle/überschreibbare Methode hinzu, um das Skript zu registrieren. In der Basisklasse überschreiben Sie diese Methode und rufen die Basisimplementierung nicht auf. Das würde es außer Kraft setzen.

Auch