本文共 980 字,大约阅读时间需要 3 分钟。
目标效果:
项目中显示视频列表时,如果缩略图不存在,则加载一个默认图片。而不是一个很丑的小红叉。其中缩略图图片是存在另外一个独立的视频服务器上的,所以我们不能用File.Exist()方法直接判断,需要另辟蹊径。
实现步骤:
前台采用 asp:Repeater 控件,添加事件onitemdatabound="rptTraining_ItemDataBound"。
protected void rptTraining_ItemDataBound( object sender, RepeaterItemEventArgs e) { Image img = (Image)e.Item.FindControl( " img " ); if ( ! RemoteFileExists (img.ImageUrl )) { img.ImageUrl = " images/memo.jpg " ;//如果图片不存在,则加载默认图片 } }
加载每一条记录的时候都检测一下远程服务器上是否存在图片,RemoteFileExists方法如下。
/// <summary> /// 判断远程文件是否存在 /// </summary> /// <param name="fileUrl"> 文件URL </param> /// <returns> 存在-true,不存在-false </returns> private bool RemoteFileExists( string fileUrl) { bool result = false ; // 下载结果 WebResponse response = null ; try { WebRequest req = WebRequest.Create(fileUrl); response = req.GetResponse(); result = response == null ? false : true ; } catch (Exception ex) { result = false ; } finally { if (response != null ) { response.Close(); } } return result; }
至此,实现了想要的效果。
知识虽小,重在点滴。积跬步方以至千里。
转载地址:http://ivdqz.baihongyu.com/