在Sitecore中绑定SC图像

时间:2015-07-20 07:50:18

标签: c# asp.net sitecore

我有一个转发器控件,想要将图像绑定到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);
}

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

1 个答案:

答案 0 :(得分: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&安培; param2的=值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();
}