2011-07-05 7 views
1

私はasp.netでListViewを使用しています。私はプロバイダテーブルからデータを取得します。プロバイダIDによると、画像は同じフォルダ(1.jpg,2.jpgなど)に保存されています。 プロバイダIDに従って画像を表示したいとします。 画像は表示されません。しかし、私は単純なhtml imgのコントロールを使用すると、画像が表示されます。 ImageButtonでshow imageのために何をすべきですか?イメージはImageButtonにありませんasp.net

<asp:ListView DataSourceID="ObjectDataSource1" ItemPlaceholderID="dd" ID="ddlprovider" 
runat="server"> 

     <LayoutTemplate> 
      <ul> 
       <asp:PlaceHolder ID="dd" runat="server"/> 
      </ul> 
     </LayoutTemplate> 
     <ItemTemplate> 
      <asp:ImageButton runat="server" ImageUrl='<%#Eval("ProviderID") %>.jpg' ID="imgButton" />//Not work 
      <asp:LinkButton runat="server" CommandArgument='<%#Eval("ProviderID") %>'/> 
     </ItemTemplate> 
    </asp:ListView> 
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
     DeleteMethod="Delete" InsertMethod="Insert" 
     OldValuesParameterFormatString="original_{0}" SelectMethod="FetchAll" 
     TypeName="mogile.MidTier.DAL.ProviderController" UpdateMethod="Update"> 
    </asp:ObjectDataSource> 
+0

もっとコードを提供できますか?あなたが投稿したビットが不完全であるようです。 –

+0

そのイメージの生成パスは何ですか?ブラウザのページで「ソースを表示」を行います。それはあなたの単純なhtmlとどう違うのですか?それはあなたにいくつかのヒントを与えるかもしれません。 –

答えて

3

文字列の末尾にコード区切りを付けるべきではありません。

にコードの行を変更してみてください:

<asp:ImageButton runat="server" ImageUrl='<%# string.format("{0}.jpg", Eval("ProviderID")) %>' ID="imgButton" /> 

EDIT: あなたはこの1つが存在しない場合、デフォルトの画像を表示したい場合は、にコードを変更する必要があります:

<asp:ImageButton runat="server" ImageUrl='<%# GetImageURL(Eval("ProviderID")) %>' ID="imgButton" /> 

Function GetImageURL(ProviderID as Integer) as String 
    Dim ImageFileName as string = string.format("[image path here]/{0}", ProviderID) 
    If Not File.Exists(server.mappath(imagefilename)) then imagefilename = "[default image path here] 
    Return ImageFileName 
End Function 
+1

あなたはevalにフォーマットを入れることができます:<%#Eval( "ProviderID"、 "{0} .jpg")%> – onof

+0

私は信じていますか?どちらの方法でも、実際にページが実際には実際のファイルパスではない<%#Eval( "ProviderID")%> .jpg "と表示されていると思います – Curt

+0

イメージがプロバイダIDに一致しない場合はどうすればいいですか?画像。 –

関連する問題