2013-05-08 33 views
0

数据库查询插入中继器。其中一个领域是一个图像。只有一些数据行具有图像,所以如果他们确实有图像,它可以正常工作,但是如果数据库中没有图像,它会在图像应该显示的地方显示一个空白点。如果数据库中没有图像,我希望它没有空白图像。我该怎么做呢?一些行有图像,有些则没有。我想显示的所有行,但如果疗法没有图像,我不希望有一个空白图像出现如果不在数据库中,不需要中继器中的空白图像

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

更改ASPX图片标签从代码隐藏调用函数,试试这个

<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 2013-05-08 05:12:25

+0

什么是thumbname的有效值?检查这个属性'visible ='<%#ShowImage(Eval(“ThumbName”))%>''这是传递名字到代码隐藏 – 2013-05-08 19:28:00

1

想法是在将数据库放入中继器控制之前检查数据库中的内容。如果图像不存在,那么你可以添加一些默认图像,而不是像empty.png这将是1px x 1px。

一个解决方案是更新您的SQL查询,获取数据并使用ISNULL提供默认的空白图像。

另一种解决方案是为此在ASP.NET这样的(基本上相同RS显示)

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

然后就在同一个网页形式,做所有的数学,并显示一些默认映像创建保护GetImageURL如果提供不存在。