1

別のWebサイトから次のようにasp.netListViewコントロールに画像を動的にロードしています。

<ListView>
   <ItemTemplate>
      <img src='<%# string.Format("http://www.Website.com/Images/{0}", Eval("ImageName")) %>' />

時々、画像が存在せず、srcを静的パスに変更する必要があります:src="/whatever/default.png"。イメージが存在するかどうかを確認し、存在しない場合はsrcを更新する最速の方法は何ですか(jQueryを介したクライアント側の可能性)?ListViewはページングされており、数千のレコードの結果セットが含まれている可能性があるため、パフォーマンスを最適化するために、現在のページにある画像のみを確認したいと思います。ありがとう!

4

2 に答える 2

2

jqueryを使用すると、次のように実行できます。

<img src="http://myimages.com/image.jpg" id="imgId" />

$('#imgId').load(function(){
 // ... loaded  
}).error(function(){
 // ... not loaded
 $(this).attr('src','/whatever/default.png');
});
于 2011-03-31T16:05:11.677 に答える
0

画像を読み込んでみて、エラーが発生した場合は、デフォルトにフォールバックします。

$('img').error(function()
{
  $(this).attr('src', '/whatever/default.png');
});

編集:この解決策は機能しない可能性があるため、別の解決策を提供します。画像が読み込まれないwidth場合、理論的にはのがあります(タグ0のスタイルを設定しなかったと仮定します)。<img>このコードは機能する可能性があります。

$('img').each(function()
{
  if ($(this).width() == '0px')
  {
    $(this).attr('src', '/whatever/default.png');
  }
});
于 2011-03-31T16:04:46.837 に答える