【问题标题】:ListView evaluating item template with multiple variablesListView 评估具有多个变量的项目模板
【发布时间】:2012-07-15 14:17:08
【问题描述】:

我试图在我的 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 中显示带有服务器变量的数据项 - 可能吗?

【问题讨论】:

    标签: asp.net .net listview data-binding


    【解决方案1】:

    使用代码隐藏函数或 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" />
    

    【讨论】:

    • 叹息...请告诉我这并不容易。去试试这个,我会告诉你它是否有效。
    • 我有时可能会很厚,但我终于做到了。我基本上在代码隐藏中构建了整个图像标签并像这样调用它: 使用图像标签并仅将 src 发送给它时,它都不起作用。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 2018-07-03
    • 2016-06-09
    • 2012-01-31
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    相关资源
    最近更新 更多