2015-07-20 43 views
0

我有一个中继器控件,并且想要将图像绑定到onitemdatabound事件的sc控件。在Sitecore中绑定SC图像

我的标记是:

<sc:Link runat="server" ID="sclnk" Field="#" rel="iframe-960-540"> 
<sc:image id="scimage" runat="Server" field="#"> 
</sc:image> 
</sc:Link> 

而且我的代码是:

Sitecore.Web.UI.WebControls.Link scBannerLink = e.Item.FindControl("sclnk") as Sitecore.Web.UI.WebControls.Link; 
if (scBannerLink != null) 
{ 
    scBannerLink.DataBind(promoItem.ID.ToString(), promoItem.PromoLink.Field.InnerField.Name); 

} 
Sitecore.Web.UI.WebControls.Image scPromoImage = e.Item.FindControl("scimage") as Sitecore.Web.UI.WebControls.Image; 

if (scPromoImage != null) 
{ 
    scPromoImage.DataBind(promoItem.ID.ToString(), promoItem.PromoImage.Field.InnerField.Name); 
} 

我没有得到任何错误,但不diaplaying图像

回答

1

我从来没有使用DataBind方法设置属性的控件。

的更简单的方法是指定Fieldname并设置Item在你的中继:

<asp:Repeater runat="server" ID="rptImages"> 
    <ItemTemplate> 

     <sc:Link runat="server" ID="scLnk" Field="MyLinkFieldName" Item="<%# Container.DataItem %>" Parameters="rel=iframe-960-540"> 
      <sc:image id="scImage" runat="Server" Field="MyImageFieldName" Item="<%# Container.DataItem %>" /> 
     </sc:Link> 

    </ItemTemplate> 
</asp:Repeater> 

而且你可以在附加属性传中Parameters领域上的控制为URL编码的参数字符串,例如参数=“相对= iframe的960-540 &参数2 =值2 &参数3 =数值3”

背后绑定的控件的代码应该是:

protected void Page_Load(object sender, EventArgs e) 
{ 
    rptImages.DataSource = Sitecore.Context.Item.GetChildren(); // this needs to be changed to whatever your query is... 
    rptImages.DataBind(); 
} 
+0

我有,当我尝试此YouTube链接它没有显示图像@ jammykam –

+0

它们是分开显示的吗?例如,如果您只是显示图像或只显示链接? – jammykam

+0

不,他们没有显示任何东西。如果我使用的是我发布的问题,它会向我展示2张图片,但这不是 –