Asp.net 在列表视图中使用通用处理程序为图像提供服务。可能吗?
目前在我的网页中,我将图像加载到ListView对象,如下所示Asp.net 在列表视图中使用通用处理程序为图像提供服务。可能吗?,asp.net,visual-studio-2010,data-binding,listview,generic-handler,Asp.net,Visual Studio 2010,Data Binding,Listview,Generic Handler,目前在我的网页中,我将图像加载到ListView对象,如下所示 <ContentTemplate> <asp:ListView ID="ListView1" runat="server"> <layouttemplate> <asp:PlaceHolder id="itemPlaceholder" runat="server" />
<ContentTemplate>
<asp:ListView ID="ListView1" runat="server">
<layouttemplate>
<asp:PlaceHolder id="itemPlaceholder" runat="server" />
</layouttemplate>
<ItemTemplate>
<td>
<asp:Image ID="Image1" runat="server"
ImageUrl = '<%# DataBinder.Eval(Container.DataItem, "Image") %>' />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
</ContentTemplate>
我如何将以上两者结合起来提供图像
我尝试了以下类似的方法,但不正确
<asp:Image ID="Image1" runat="server"
ImageUrl = ~/Handlers/Image.ashx?img= & '<%# DataBinder.Eval(Container.DataItem, "Image") %>' />
那么正确的方法是什么呢?试试这个
<ItemTemplate>
<asp:Hyperlink runat= "server" Text='<%#DataBinder.Eval(Container.DataItem,"ProductName").ToString()%>' NavigateUrl='<%# "page.aspx?Name=" & DataBinder.Eval (Container.DataItem,"ProductName").tostring %>' ID="ProductName"/>
</ItemTemplate>
是的,这是正确的方法。但是,绑定ImageUrl的语法不正确。
试试这个:
<asp:Image ID="Image1" runat="server" ImageUrl ='<%# "~/Handlers/Image.ashx?img=" + Eval("Image")%>' />
Eval是一种非常古老的数据绑定方法
<asp:Image ID="Image1" runat="server" ImageUrl ='<%# "~/Handlers/Image.ashx?img=" + Eval("Image")%>' />
Image image1 = e.FindControl("Image1") as Image;
YourClass item = e.DataItem as YourClass;
image1.ImageUrl = String.Format("~/Handlers/Image.ashx?img={0}", item.Image")