在Sitecore中绑定SC图像

本文关键字:SC 图像 绑定 Sitecore | 更新日期: 2023-09-27 18:03:36

我有一个重复器控件,并希望将图像绑定到onitemdatabound事件的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);
}

我没有得到任何错误,但没有显示图像

在Sitecore中绑定SC图像

我从来没有使用过控件的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编码的参数字符串,例如parameters ="rel=iframe-960-540&param2=value2&param3=value3"

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

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