2016-03-21 8 views
0

これは適切なアプローチであるかどうかはわかりませんが、まだ進んでいます。 テンプレートはTreelistExからSitecoreのリピータに画像をバインドする方法

Description [Rich Text] 
Images  [TreelistEx] 

ユーザーが後でカルーセルに表示されるTreelistExフィールドを使用して、メディアライブラリから写真を選択しますこれらのフィールドがあります。また、ユーザーはそれらの画像を編集できる必要があります。

私のコードは、画像を表示していません。

ASPX:

<div class="toggle_1bs"> 
    <asp:Repeater ID="rpImages" runat="server" OnItemDataBound="rpImages_ItemDataBound"  
    ItemType="Sitecore.Data.Items.Item"> 
    <HeaderTemplate> 
    <div id="1bs" class="owl-carousel"> 
    </HeaderTemplate> 
    <ItemTemplate> 
    <div class="item"> 
    <sc:Image ID="imgMain" Field="Images" runat="server" CssClass="img-full" 
    Item="<%#Container.DataItem %>"/> 
    </div> 
    </ItemTemplate> 
    <FooterTemplate> 
    </div> 
    </FooterTemplate> 
    </asp:Repeater> 
</div> 

aspx.cs:

private void BindData() 
{ 
    //bind data to the repeater 
    MultilistField offerImages = (MultilistField)offerDetails.Fields["Images"]; 
    rpImages.DataSource = offerImages.GetItems(); 
    rpImages.DataBind(); 
} 

protected void rpImages_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    var mainItem = (Item)e.Item.DataItem; 

    if (mainItem != null) 
    { 
    var imgMain = (Image)e.Item.FindControl("imgMain"); 

    if(imgMain != null) 
    { 
    if (!string.IsNullOrEmpty(MediaManager.GetMediaUrl(mainItem))) 
     imgMain.DataSource = MediaManager.GetMediaUrl(mainItem); 

     //Response.Write(MediaManager.GetMediaUrl(mainItem)); 
    } 
    }    
    } 

2個のイメージがありtreelistコントロールを使用して追加し、I 2枚の画像に対してレンダリングされたHTMLを見ることができる(<div class="item"></div> )。

答えて

3

フィールドはImageタイプフィールドではありません。だからこそ、sc:Imageのように使うことはできません。

あなたのTreeListExからメディアアイテムのリストを取得しています。

あなたrpImages_ItemDataBoundを削除し、代わりにこのような何かを試してみてください。

<ItemTemplate> 
    <img src='<%# Sitecore.StringUtil.EnsurePrefix('/', Sitecore.Resources.Media.MediaManager.GetMediaUrl((Sitecore.Data.Items.Item)Container.DataItem)) %>' /> 
</ItemTemplate> 
+0

表示画像をなかったことが、ユーザーはそれらを編集することはできません。画像を編集可能にするためには、各画像を項目として追加してから 'sc:image'を使うべきだと思います。そうです。その他の方法で? – Qwerty

+0

リピータにアイテムタイプがあるので、このようにアイテムを直接呼び出すことができます。これは編集可能な画像を表示しますか?また、この行をデバッグして項目を検査できますか?アイテムにImagesというフィールドがありますか?

+2

上記のように、トレネリスト。あなたはフレームとカスタムボタンの編集について読むべきです。 –

関連する問題