1

ListViewコントローラーのアイテムテンプレート内に画像タグを含む行を印刷しようとしています。私はこれを複数の方法で試しましたが、成功しませんでした。

<ItemTemplate>
  <tr id="itemTemplate" runat="server">
    <td>
      <asp:Literal ID="litImg" runat="server" Text='<%= "<img src="" & PathtoImg & "ProcessImage.aspx?Img=" & Eval("Img") & "&amp;PID="Resize"" alt=""ProductID"" />")))) %>' />
     </td>
     <td>
         <asp:Literal ID="litID" runat="server" Text='<%# Eval("Department") %>' />
     </td>
    </tr>
</ItemTemplate>

最初の評価は機能しません(そして少しクラスターです)、2番目の単純な行は機能します。エラーは発生しませんが、表示されます

そして明らかにこれは機能しません

<img src="<%= PathtoImg %>ProcessImage.aspx?Img=<%= Eval("Img")%>&amp;PID=Resize" alt="ProductID" />

エラーが発生するため

「Eval()、XPath()、Bind()などのデータバインディングメソッドは、データバインディングコントロールのコンテキストでのみ使用できます。」

Listviewを使用するのはこれが初めてであり、これらのテンプレートにはあまり慣れていません。画像タグのsrc内にサーバー変数を含むデータ項目を表示することは可能ですか?

4

1 に答える 1

0

コード ビハインド関数または runat="server" HTML コントロールを使用します。

マークアップ:

<ItemTemplate>
  <tr id="itemTemplate" runat="server">
    <td>
       <asp:Image id="Image1" runat="server" 
                    ImageUrl="<% GetImageUrl(Eval("Img"), PathToImg))%>"/>
     </td>   
    </tr>
</ItemTemplate>

分離コード:

protected string GetImageUrl(object img, string pathToImg)
{
     //example business logic, change for your needs
     //build your url etc....
     string imgPathFromDb = (string)img;

     return PathToImg + imgPathFromDb; 

}

その他のオプション:

<img runat="server" src="<%# PathtoImg %>ProcessImage.aspx?Img=<%# Eval("Img")%>&amp;PID=Resize" alt="ProductID" />
于 2012-07-16T18:11:15.827 に答える