2012-02-20 11 views
0

画像をimg制御で表示したい。img ASPコントロールで画像を表示するには?

ASPコード:

<asp:Image id="id" src='<%# Eval("Item.SmallPicPath") %>' Runat="Server" > 

C#コード:

 public void Page_Load(Object sender, EventArgs e) 
{ 
    Glasses item=GetItemByID(GlassesID) //retrive record from data base 
} 

メガネは、プロパティSmallPicPathを持つクラスです。

イメージを表示しようとしましたが、エラーを修正する方法が間違っていますか?

ありがとうございます!

+0

あなたはそれに何を使用していますか?リピータ、gridview?何 ? – Aristos

答えて

2

あなたが使用しようとしているアプローチはデータバインディングに基づいていますが、これは一般に1つの画像には適していません。背後にあるコードの中で、次に

<asp:Image id="MyImageId" runat="server"> 

代わりに、このマークアップのようなものを試してみてください

public void Page_Load(Object sender, EventArgs e) 
{ 
    Glasses item = GetItemByID(GlassesID); //retrive record from data base 
    this.MyImageId.ImageUrl = item.SmallPicPath; 
} 

あなたはまだいくつかの理由でデータバインディングを使用したい場合は、このようなものが動作するはずです(他のアプローチと比較してパフォーマンスコストはありますが):

<asp:Image id="MyImageId" runat="server" ImageUrl="<%# item.SmallPicPath %>"> 

コードネーム後ろ:

public Glasses item; 

public void Page_Load(Object sender, EventArgs e) 
{ 
    this.item = GetItemByID(GlassesID); //retrive record from data base 
    this.MyImageId.DataBind(); 
} 

データバインディングはオプションの操作です。コントロール(またはその親)にDataBind()を呼び出す必要があります。

データコンテナ(通常はDataSourceを介して)が必要な場合にのみ、 "Eval()"が必要です。

+0

ありがとうRick.Butなぜ私のアプローチは間違っていますか? – Michael

+0

回答が更新されました。 – RickNZ

0
<asp:Image id="id" ImageUrl='<%# Eval("Item.SmallPicPath") %>' Runat="Server" > 

Eval式は、Item.SmallPicPathではない可能性があります。データオブジェクトのタイプがグラスで、このタイプにSmallPicPathプロパティがある場合は、Eval( "SmallPicPath")を使用します。

関連する問題