質問

私は持っています ScriptControl これは、埋め込みリソースとして画像を使用します GetWebResourceUrl 生成する WebResource.axd URL。私は現在使用しています GetScriptDescriptors() JavaScriptオブジェクトにURLを送信します。

ScriptControl にすることができます Repeater, 、したがって、20以上のインスタンスがある場合があります。それらはすべて同じ画像(プロパティを通じてカスタマイズできない)を使用しているため、変数でURLを1回設定して共有したいと思います。グローバル変数でスクリプトブロックを登録できることは知っていますが、可能であればそれを避けたいと思います。制御タイプの範囲内で変数を設定する方法はありますか(グローバル - > コントロールタイプ - >コントロールインスタンス)?

役に立ちましたか?

解決

これはうまく機能しているようです:

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

それから私のオブジェクトで私はただします this.imgDisabled また this.imgEnabled URLを取得します。

編集: 別のオプションがあります AssemblyInfo.cs JavaScriptの参照を設定します WebResource(..., PerformSubstitution = true) その後、.jsファイルには持つことができます <%= WebResource("MyNamespace.enabled.png") %> あなたが望むどこでも。これは、実際にそれを使用するか、オブジェクトのプロトタイプに追加する場所です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top