2009-06-12 99 views
0

我正在实现主题以使现有网站可以根据请求URL重新标记(标识,颜色,图片等)。我知道如何做到这一点,并且除了与图像网址相关的一些例外外,皮肤还能正常工作。主题图片URL重定向asp.net

具体而言,我有一个控制属性,它是不可行的皮肤。在实现主题之前,它看起来像这样:

<DisplayImageChecked Url="~/Images/BobIcon-Green.png" /> 

很明显,这不适用于主题。所以经过很多反复试验和阅读,我试图执行它是这样的:

<DisplayImageChecked Url="~/AppThemes/<%= Page.Theme %>/Images/BobIcon-Green.png" /> 

但是,这并不起作用。生成的html看起来像:

<img src="AppThemes/%3C%25=%20Page.Theme%20%25%3E/Images/BobIcon-Green.png"/> 

任何指针在正确的方向将不胜感激。

大卫

+0

数据绑定控件(如Repeater,ListView等)中包含吗? – Kane 2009-06-12 03:35:39

+0

是的,它在数据绑定控件中。它是Developer Express ASPxGridView上GridViewDataCheckColumn的属性。 – daveywc 2009-06-12 03:54:57

回答

0

有没有,你不能只转储在同一文件夹为主题的图像的原因是什么?如果你将一个图像放在主题文件夹中,例如:“image.gif”,那么你可以直接在你的皮肤中直接引用它。

ImageUrl="image.gif" 

这将解决得很好,当你在你的页面上的控件应用这个皮肤。也比试图做动态URL的事情容易得多。

+0

不幸的是,这并没有帮助,因为我在这里也有主页。 – daveywc 2009-06-12 03:53:34

2

使用数据绑定控件内绑定语法(看单VS双引号):

<DisplayImageChecked Url='<%# "~/AppThemes/" + Page.Theme + "/Images/BobIcon-Green.png" %>' /> 
+0

这是最好的方法,当使用它inisde ASPxGridView – 2012-04-21 15:13:09

0

你也可以使用“图像/ BobIcon-Green.png”的网址。 ASP将负责将Url解析为主题中的目录。

0

这里是去了解你的任务的正确方法:

装饰你的财产与UrlProperty属性,这会告诉ASP.NET到您的部分URL自动转化为正确的网址。

使用“〜/ AppThemes /”+ Page.Theme +“/Images/BobIcon-Green.png”可以做到这一点,但它不是首选方式,因为您需要自己完成所有工作,而且总是很好练习将所有工作留给ASP