カスタム ページ レイアウトで、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- us/library/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";
}
}