2014-01-29 5 views
0

나는 FilePath를가 null로, 이미지 URL로부터 값을 얻을 수있을 때 나는 경우를 포함하려면 어떻게조건부 이미지 URL은 asp.net

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

이 뒤에 코드에서 값

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

와 테이블이 PicURL?

감사 Rashmi

+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

null이 아닌 값을 기반으로 PicURL 또는 FilePath를 반환하도록 SQL 쿼리를 변경할 수 있습니다. 어떤 필드가 우선해야하는지에 따라 필드 목록의 순서를 반대로 할 수 있습니다. 코드의 어느 부분 테이블을 읽고

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

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