2013-05-08 2 views
0

데이터베이스 쿼리가 repeater에 삽입됩니다. 필드 중 하나가 이미지입니다. 일부 데이터 행에만 이미지가 있으므로 이미지가 있으면 제대로 작동하지만 데이터베이스에 이미지가 없으면 이미지가 있어야하는 빈 곳이 표시됩니다. 데이터베이스에 이미지가 없으면 빈 이미지를 렌더링하지 않기를 원합니다. 어떻게해야합니까? 일부 행에는 이미지가 있고 일부 행에는 이미지가 없습니다. 나는 모든 행을 표시하기를 원하지만 THER는 이미지가없는 곳에, 나는데이터베이스에 없으면 repeater에서 공백 이미지를 원하지 않음

asp:Repeater id="cdcatalog" runat="server" onitemcreated="cdcatalog_ItemCreated" onitemcommand="cdcatalog_ItemCommand"> 

      <ItemTemplate> 
    < img src='<%# "/contents/thumbs/" + Eval("ThumbName")%>' width="375px" height="200px"   
</ItemTemplate> 

</asp:Repeater> 

Page Load: 
Dim cmd As New SqlCommand("SELECT * From Video", con) 
     Dim ds = New DataSet() 
     Dim da = New SqlDataAdapter(cmd) 
     da.Fill(ds) 

     cdcatalog.DataSource = ds 
     cdcatalog.DataBind() 

답변

0
는 코드 숨김에서 함수를 호출하여 영문 이미지 태그를 변경

표시 빈 이미지를 싶지 않아,이

<img src='<%# "/contents/thumbs/" + Eval("ThumbName")%>' 
    width="375px" height="200px" visible='<%# ShowImage(Eval("ThumbName"))%>' 
시도

Codebehind가

Protected Function ShowImage(name As Object) As [boolean] 
If name IsNot Nothing Then 
    Return name.ToString().Trim().Length > 0 
End If 
Return False 
End Function 
+0

질문 : 이것은 작동하지 않았습니다. ThumbName 열에는 정수가 포함되거나 NULL이거나 0입니다. 모든 경우에 공백 이미지 또는 이미지가있는 경우이를 보여줍니다. Thumbname 값을 함수에 어떻게 가져 옵니까? 나는 showimage (객체로서의 이름)를 본다. 중계기에서 어떻게 이름을 얻었습니까? – mlg74

+0

썸네일의 올바른 값은 무엇입니까? 이 속성을 확인하십시오'visible = '<% # ShowImage (Eval ("ThumbName")) %>''이것은 코드 숨김에 이름을 전달합니다. –

1

아이디어는 Repeater 컨트롤에 넣어 전에 데이터베이스에서 무엇을 얻을 확인하는 것입니다. 이미지가 존재하지 않으면 empty.png 대신 1px X 1px가 아닌 기본 이미지를 추가 할 수 있습니다.

하나의 솔루션은 데이터를 가져 오는 SQL 쿼리를 업데이트하고 ISNULL을 사용하여 기본 빈 이미지를 제공하는 것입니다. (RS는 켰을 때 기본적으로 동일)

또 다른 해결책은 다음과 같이 ASP.NET에서이 작업을 수행하는 것입니다

<asp:Repeater ID="Repeater1" runat="server"> 
     <ItemTemplate> 
      <a href='<% #GetImageURL(Eval("ThumbName")) %>'></a> 
     </ItemTemplate> 
    </asp:Repeater> 

그럼 그냥 모든 수학을 수행하고 몇 가지 기본 이미지를 보여줍니다 동일한 웹 형태로 GetImageURL 보호 만들 제공된다면 존재하지 않는다.

관련 문제