Как задать Theme

Starlex
Дата: 21.06.2010 15:31:25
Привет!

Есть кнопка
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/App_Themes/Aqua/GridView/gvDragAndDropArrowUp.gif"

Здесь явно для неё задана картинка. Но тем кроме Aqua может быть много, у всех них одинаковая структура. Как сделать так, чтобы в зависимости от темы, заданной на странице, кнопке присваивались различные варианты картинки gvDragAndDropArrowUp.gif?

Пробовал
<asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="~/App_Themes/<%= Page.Theme %>/GridView/gvDragAndDropArrowUp.gif" />
и
<asp:ImageButton ID="ImageButton3" runat="server" ImageUrl="/GridView/gvDragAndDropArrowUp.gif" />

В последнем случае вроде при заданной теме вроде должен быть доступ к элементам этой темы без задания верхних путей, но почему-то не работает. Тема по части фонов, шрифтов и тд на странице работает.

Есть ли еще какие варианты?
bured
Дата: 21.06.2010 17:23:55
ImageUrl='<%# String.Format("~/App_Themes/{0}/GridView/gvDragAndDropArrowUp.gif", Page.Theme) %>'

Если юзаете мастерпейдж, там естественно путь чуть-чуть по-сложнее задаётся
Gatman
Дата: 21.06.2010 17:32:39
2. используйте скины-файлы
3. напишите свой хендлер, который будет отдавать картинки по текущей теме
Starlex
Дата: 22.06.2010 11:06:26
bured,

Спасибо, ваш пример нормально работает. Но я немного упростил ситуацию, наверное, зря. На самом деле необходимо было в ASPxGridView (компонент DevExpress, похожий на GridView) задать картинки для кнопок в стиле выбранной темы.

К сожалению конструкция
ImageUrl='<%#  %>'
как раз в этом случае не работает для несвязанных данных. Сделал пока присвоение имиджей в обработчике одного из событий, для пары кнопок пойдёт.