Repeater-不显示Image - 解析url的问题

时间:2012-10-09 13:18:21

标签: c# asp.net repeater

我有一个aspx页面,它使用DS的转发器显示数据。 db中的一个fillds是图像的路径。 我想要显示图像本身。我正在尝试使用c#中的代码。

aspx的代码:

   <asp:Repeater ID="ExampleRepeater" runat="server" 
    DataSourceID="SqlDataSource1" onitemdatabound="ExampleRepeater_ItemDataBound" >
    <HeaderTemplate>
        <table>
            <tr>
                <th>   choose
                </th>
                <th>   product is
                </th>
                <th>   products
                </th>
                <th>   price
                </th>
                <th>   des
                </th>
                <th>   path
                </th>
                <th>   pic
                </th>
            </tr>
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td>
                <asp:CheckBox ID="checkbox1" runat="server"  
                    CausesValidation="false"></asp:CheckBox>
            </td>
            <td>

                <asp:Label ID="lblID" runat="server" Text='<%# Eval("ProductID") %>'></asp:Label>


            </td>
            <td>
                <asp:Label ID="lblName" runat="server" Text='<%# Eval("ProductName") %>'></asp:Label>
            </td>

            <td>
                 <asp:Label ID="lblPrice" runat="server" Text='<%# Eval("Price") %>'></asp:Label>
            </td>

            <td>
                  <asp:Label ID="lblSum" runat="server" Text='<%# Eval("Summary") %>'></asp:Label>
            </td>

            <td>
            <asp:Label ID="lblPic" runat="server" Text='<%# Eval("picPath") %>'></asp:Label>
            </td>

            <td>
            <asp:HiddenField Value='<%# Eval("picPath") %>' ID="HiddenField1" runat="server" />
                <asp:Image ID="Image1" runat="server" />
            </td>


            </tr>
           </ItemTemplate>



    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:Repeater>

c#代码:

protected void ExampleRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        HiddenField hf = e.Item.FindControl("HiddenField1") as HiddenField;
        if (hf != null)
        {
            string val = hf.Value;
            Image img = e.Item.FindControl("Image1") as Image;
            img.ImageUrl =   val + ".jpg";
        }
    }

它不起作用,我错过了一些东西 - 我不知道。 请帮我, 感谢名单

1 个答案:

答案 0 :(得分:0)

您可以尝试使用 - 基于Server.MapPath来定义相对路径

img.ImageUrl = Server.MapPath(val + ".jpg");