次の回答は、コンテキストアイテムのドロップリンクがメディアアイテムを指していることを前提としています。(質問者の説明の前に)。他の誰かに役立つかもしれません。
コードビハインドでasp:ImageとOnItemDataBounde.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;
}
ページエディタをサポートしている場合(私はあなたがサポートしていることを願っています!)、リピーター内でフレームの編集を使用して各アイテムの画像を編集できます。(リンクされた例では、全体の周りに編集フレームが配置されていますが、編集フレームをの中に配置し、プロパティを現在のアイテムIDにデータバインドするListView
必要があることに注意してください。)Repeater
Datasource