在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);
}
我没有得到任何错误,但没有显示图像
我从来没有使用过控件的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¶m2=value2¶m3=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();
}