Frage

habe ich ein ScriptControl, die ein Bild als eingebettete Ressource und GetWebResourceUrl verwendet die WebResource.axd URL zu generieren. Ich bin derzeit GetScriptDescriptors() mit der URL an das JavaScript-Objekt zu senden.

Die ScriptControl kann in einem Repeater, so dass Sie mehr als 20 Instanzen haben können. Sie alle verwenden die gleichen Bilder (nicht anpassbar durch Eigentum), so dass ich einmal die URL festlegen möchten in einer Variablen und teilen Sie es. Ich weiß, ich könnte einen Skriptblock mit einer globalen Variablen registrieren, möchte aber, dass wenn möglich vermeiden. Gibt es eine Möglichkeit, eine Variable im Rahmen des Steuertyp eingestellt? (Global -> Steuerungsart -> Kontrollinstanz)

War es hilfreich?

Lösung

Das scheint gut zu funktionieren:

        string imagesScript = String.Format(
            "MyNamespace.MyClass.prototype.imgDisabled = '{0}';" +
            "MyNamespace.MyClass.prototype.imgEnabled = '{1}';",
            Page.ClientScript.GetWebResourceUrl(typeof(MyClass), "MyNamespace.disabled.png"),
            Page.ClientScript.GetWebResourceUrl(typeof(MyClass), "MyNamespace.enabled.png")
        );

        Page.ClientScript.RegisterStartupScript(typeof(MyClass), "Images", imagesScript, true);

Da ist in meinem Objekt, das ich nur this.imgDisabled oder this.imgEnabled tun, um die URLs zu erhalten.

Edit: Eine weitere Möglichkeit ist in AssemblyInfo.cs Sie die JavaScript-Verweis auf WebResource(..., PerformSubstitution = true) stellen Sie dann Ihre js-Datei <%= WebResource("MyNamespace.enabled.png") %> überall haben können Sie es wünschen. Dies kann sein, wenn Sie es tatsächlich verwenden oder das Hinzufügen von dem Objekt Prototyp.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top