在我的自定义页面布局中,我声明了一个 RichImageField
<PublishingWebControls:RichImageField id="InteriorHeaderImage" FieldName="InteriorHeaderImage" InputFieldLabel="Header Image" runat="server" DisplayWidth="960" DisplayHeight="242" />
我试图弄清楚如何设置默认图像,以便控件始终显示图像,即使是第一次使用布局创建页面时也是如此。
理想情况下,我想要一种声明性方法,例如:
<PublishingWebControls:RichImageField id="InteriorHeaderImage" DefaultImageURL="[it should be this easy]" />
似乎控件的 value 属性被分配了一个 ImageFieldValue 对象,我可能会弄清楚如何在代码隐藏中设置,但这种方法似乎比它应该的更难:http: //msdn.microsoft.com/en-我们/图书馆/microsoft.sharepoint.publishing.fields.imagefieldvalue.aspx
解决方案:我最终通过创建一个继承自 Microsoft.SharePoint.Publishing.PublishingLayoutPage 的类文件为我的页面布局创建了一个代码,如下所述:http: //msdn.microsoft.com/en-us/library/bb986729 .aspx
当然,代码最终只有几行:
protected void Page_Load(object sender, EventArgs e)
{
ImageFieldValue imageField = InteriorHeaderImage.Value as ImageFieldValue;
if (imageField!=null)
{
if(string.IsNullOrEmpty(imageField.ImageUrl))
imageField.ImageUrl = "/Style Library/assets/images/img1small.jpg";
}
}