在列表视图中使用通用处理程序提供图像。可能吗?

时间:2011-02-27 07:43:27

标签: 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" />
                </layouttemplate>
                <ItemTemplate>
                        <td>
                            <asp:Image ID="Image1" runat="server"  
                    ImageUrl = '<%# DataBinder.Eval(Container.DataItem, "Image") %>' />
                        </td>
                    </tr>
                </ItemTemplate>
            </asp:ListView>
 </ContentTemplate>

现在,我想使用Generic Handler和ListView对象的组合将图像提供给ListView

...通用处理程序调用就像

~/Handlers/Image.ashx?img=

我如何将上述两者结合起来提供图像?

我尝试了类似下面的内容,但它不正确

<asp:Image ID="Image1" runat="server"  
                        ImageUrl = ~/Handlers/Image.ashx?img= & '<%# DataBinder.Eval(Container.DataItem, "Image") %>' />

那么正确的方法是什么?

2 个答案:

答案 0 :(得分:1)

是的,这是正确的方法。但是,绑定ImageUrl的语法不正确。 试试这个:

<asp:Image ID="Image1" runat="server" ImageUrl ='<%# "~/Handlers/Image.ashx?img=" + Eval("Image")%>' />

您也可以使用ItemDataBound事件来使用如下代码:

Image image1 = e.FindControl("Image1") as Image;
YourClass item = e.DataItem as YourClass;
image1.ImageUrl = String.Format("~/Handlers/Image.ashx?img={0}", item.Image")

答案 1 :(得分:0)

试试这个

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

希望有所帮助

来源:http://www.extremeexperts.com/Net/FAQ/PassingMulitpleParameterinURLLink.aspx