以下答案假定上下文项上的下拉链接指向媒体项。(在提问者澄清之前)。可能对其他人有用。
您需要在后面的代码中使用 asp:Image 和OnItemDataBound处理程序,并使用e.Item.DataItem
(其中 e 是RepeaterItemEventArgs
)来获取被绑定的项目。确保e.ItemType
是一个ListItemType.Item
. 从那里它会像......
var item = (Item)e.Item.DataItem;
var dropLink = new InternalLinkField(item.Fields["image from droplink"]);
var mediaItem = dropLink.TargetItem;
if (mediaItem != null)
{
var options = new MediaOptions { Height = 100, Width = 100 }; //change to your dimensions
var imageUrl = MediaManager.GetMediaUrl(new MediaItem(mediaItem), options);
var imageControl = e.Item.FindControl("myImageControlID"); //change to asp:Image ID
imageControl.ImageUrl = imageUrl;
imageControl.AlternateText = mediaItem.Alt;
}
如果您支持页面编辑器(希望您支持!),在转发器中,您可以使用编辑框架来允许编辑每个项目上的图像。(请注意,链接的示例在整个 周围放置了一个编辑框ListView
,而您需要将其放置在您的内部Repeater
并将属性数据绑定Datasource
到当前项目 ID。)