2014-01-29 4 views
0

У меня есть таблица со значениямиУсловный ImageUrl asp.net

ID  PicURL   FilePath 
1  www.a.com/1.png NULL 
2  NULL    ~/Images/2.jpeg 

В коде позади меня есть

<asp:Image ID="imageControl" runat="server" Width="100" ImageUrl='<%#Eval("FilePath")%>'></asp:Image> 

Как включить случай, когда FilePath является недействительным и ImageUrl должен получить значение из PicURL?

Благодаря Рашми

+0

Какая часть кода читает таблицу? Разве нет SQL-запроса где-то? – abhi

+0

Всегда ли тот или иной объект null? Что делать, если обе заселены? Предположим, что FilePath имеет приоритет? –

ответ

2

Если вы не хотите, чтобы изменить структуру данных, или запрос ... и хотите сделать это в коде впереди, вы можете сделать это так (хотя это уборщик делать в ItemDataBound):

<asp:Image ID="imageControl" runat="server" Width="100" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "FilePath") != null ? Eval("FilePath") : Eval("PicURL") %>'></asp:Image> 
0

Почему вы не просто создать вычисляемое поле/свойство и сделать логику там, а затем связать эту собственность?

+0

Скорее всего, это относится к разделу комментариев, а не к ответам. –

0

Вы можете изменить свой SQL-запрос, чтобы вернуть PicURL или FilePath на основании того, какое значение не равно null. Вы можете изменить порядок списка полей в зависимости от того, какое поле должно иметь приоритет.

SELECT Id, Isnull(PicURL, FilePath) as ImageUrl from tblImage

<asp:Image ID="imageControl" runat="server" 
Width="100" ImageUrl='<%#Eval("ImageUrl")%>'></asp:Image> 

 Смежные вопросы

  • Нет связанных вопросов^_^