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()
4

2 回答 2

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>

然后只需在相同的 Web 表单中创建受保护的 GetImageURL,该表单执行所有数学运算并显示一些默认图像(如果提供的图像不存在)。

于 2013-05-08T09:11:32.987 回答
0

将您的 aspx 图像标签更改为从代码隐藏调用函数,试试这个

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

代码隐藏

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
于 2013-05-08T02:03:46.877 回答