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>

第一个 eval 不起作用(并且有点像集群),第二个简单的行起作用。它没有错误,但它显示

显然这不起作用

<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 回答