Условный 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>