0

画像をScriptControl埋め込みリソースとして使用し、 URLGetWebResourceUrlを生成する があります。WebResource.axd現在GetScriptDescriptors()、URL を JavaScript オブジェクトに送信するために使用しています。

はに含めることがScriptControlできるRepeaterため、20 以上のインスタンスを持つことができます。それらはすべて同じ画像を使用するため (プロパティを使用してカスタマイズすることはできません)、URL を一度変数に設定して共有したいと考えています。スクリプト ブロックをグローバル変数に登録できることはわかっていますが、可能であればそれを避けたいと考えています。コントロール タイプのスコープ内で変数を設定する方法はありますか (グローバル ->コントロール タイプ-> コントロール インスタンス)?

4

1 に答える 1

0

これはうまくいくようです:

        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);

次に、オブジェクトでURL を取得するか、this.imgDisabledまたは取得します。this.imgEnabled

編集: もう 1 つのオプションはAssemblyInfo.cs、JavaScript 参照を設定してWebResource(..., PerformSubstitution = true)、.js ファイルを任意の<%= WebResource("MyNamespace.enabled.png") %>場所に配置できるようにすることです。これは、実際に使用する場所でも、オブジェクト プロトタイプに追加する場所でもかまいません。

于 2010-10-20T19:06:31.583 に答える