【问题标题】:Issue Related to Binding Image in <asp:Repeater> Control<asp:Repeater> 控件中与绑定图像相关的问题
【发布时间】:2014-04-07 12:32:39
【问题描述】:

我有 asp.net Web 应用程序。我在 .aspx 页面上有以下中继器控件:

<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);
}

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

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

谢谢

【问题讨论】:

  • 首先检查你的图片src在html中可能是它的绑定不同路径

标签: c# asp.net repeater


【解决方案1】:

试着改成这个:

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

请注意~

Ps 你可以通过以下方式获取图片名称服务器端:

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

您必须将YourObject 更改为您的特定对象。 这将避免写出和检索它们的需要。

【讨论】:

  • YourObject 可能是什么??
  • @ghanshyam.mirani 您已绑定到列表视图的集合中的对象。
猜你喜欢
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
相关资源
最近更新 更多