()在该空白事件过程中添加如下代码
Dim row As DataRowView
Dim img As Image
If eItemItemType = ListItemTypeItem Or _
eItemItemType = ListItemTypeAlternatingItem Then
row = DirectCast(eItemDataItem DataRowView)
If row(PictureURL)ToString()Trim() = Then
img = DirectCast(eItemFindControl(NewsImage) Image)
imgVisible = False
End If
End If
()保存该页面并切换到Design View右击该页面并选择View in Browser菜单项在浏览器中查看该页面注意红色的叉号图片没有出现
操作回顾
在研究代码之前需要理解HTML是怎样处理图片的通过img标记创建图片例如
<img src=ImageNamegif></img>
当浏览器接收到这段HTML代码时它将显示该图片如果找不到该图片则显示一个红色叉号图片如果使用服务器控件操作图片可以使用Image控件
<asp:Image ImageUrl=ImageNamegif runat=server ID=Image></asp:Image>
这将呈现为与第一个示例相同的HTML代码因此如果实际上找不到这个文件浏览器就将显示红色叉号图片这就是该页面中发生的事情您需要某种方式在新闻故事没有附带图片的时候不会显示红色叉号图片
在DataEvents aspx页面中使用了一个image服务器控件但ImageUrl属性的值是从数据库中取回的后续的两章将讨论数据库因此现在不必考虑它的工作原理重要的是要认识到每一行数据(一条新闻)从数据库中取出之后即被绑定到DataList控件这意味着对于从数据库的表格中取回的每条数据DataList控件都有对应的条目每行数据包含不同的新闻内容标题描述和本示例感兴趣的内容图片的名称但并不是每条新闻都有图片所以必须检查数据库中是否有图片如果没有则使得Image控件不可见下面的代码实现这个功能
[] [] [] []