()在該空白事件過程中添加如下代碼
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控件不可見下面的代碼實現這個功能
[] [] [] []
From:http://tw.wingwit.com/Article/program/net/201311/14892.html