与<asp:repeater> Control </asp:repeater>中的绑定图像相关的问题

时间:2014-04-07 12:32:39

标签: c# asp.net repeater

我有asp.net Web应用程序。我在.aspx页面上跟随了Repeater控件:

<asp:Repeater ID="repHomeList" runat="server" onitemdatabound="repHomeList_ItemDataBound">
  <ItemTemplate>
    <div class="pro-col">
      <div class="p-img">
        <asp:Image runat="server" ID="imgHomeImage" />
        <asp:Label runat="server" ID="lblImageName" Visible="false" Text='<%#Eval("Images") %>'></asp:Label>
      </div>
    </div>
  </ItemTemplate>
</asp:Repeater>

并关注事件

protected void repHomeList_ItemDataBound(object sender, RepeaterItemEventArgs e) {
  if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem)
    return;
  Image imgHomeImage = (Image)e.Item.FindControl("imgHomeImage");
  Label lblImageName = (Label)e.Item.FindControl("lblImageName");
  if (imgHomeImage != null && lblImageName != null)
    imgHomeImage.ImageUrl = Server.MapPath("PropertyImages/" + lblImageName.Text);
}

上面的代码编译得很好。但是在Repeater Control中的DataBinds时不显示Image。

那么如何在ItemDatabound事件上设置Image?

由于

1 个答案:

答案 0 :(得分:0)

请尝试将其更改为:

imgHomeImage.ImageUrl = Server.MapPath("~/PropertyImages/" + lblImageName.Text);

请注意~

您可以使用以下内容获取图像名称服务器端:

ListViewDataItem dataItem = (ListViewDataItem)e.Item;
YourObject anObject = (YourObject)dataItem.DataItem; 
var images = anObject.Images;
imgHomeImage.ImageUrl = Server.MapPath("~/PropertyImages/" + images);

您必须将YourObject更改为您的特定对象。 这样可以避免将它们写出并检索它们。