0

我有一个ScriptControl使用图像作为嵌入式资源并GetWebResourceUrl生成WebResource.axdURL 的方法。我目前正在使用GetScriptDescriptors()将 URL 发送到 JavaScript 对象。

ScriptControl可以在 a 中,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);

然后在我的对象中,我只是做this.imgDisabledthis.imgEnabled获取 URL。

编辑: 另一个选项是AssemblyInfo.cs您将 JavaScript 引用设置为,WebResource(..., PerformSubstitution = true)然后您的 .js 文件可以<%= WebResource("MyNamespace.enabled.png") %>在您希望的任何位置。这可以是您实际使用它或添加到对象原型的地方。

于 2010-10-20T19:06:31.583 回答