Условный 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 имеет значение null и ImageURL должен получить значение из PicURL?

Спасибо рашми

3 ответа

Решение

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

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

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

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

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

<asp:Image ID="imageControl" runat="server" 
Width="100" ImageUrl='<%#Eval("ImageUrl")%>'></asp:Image>
Другие вопросы по тегам