Sharepoint RichImageField设置默认图像
在我的自定义页面布局中,我声明了一个RichImageFieldSharepoint RichImageField设置默认图像,sharepoint,sharepoint-branding,Sharepoint,Sharepoint Branding,在我的自定义页面布局中,我声明了一个RichImageField <PublishingWebControls:RichImageField id="InteriorHeaderImage" FieldName="InteriorHeaderImage" InputFieldLabel="Header Image" runat="server" DisplayWidth="960" DisplayHeight="242" /> 目前我无法测试这一点,但是RichImageFie
<PublishingWebControls:RichImageField id="InteriorHeaderImage" FieldName="InteriorHeaderImage" InputFieldLabel="Header Image" runat="server" DisplayWidth="960" DisplayHeight="242" />
目前我无法测试这一点,但是
RichImageField
字段控件有一个可以设置的属性。您可以尝试以声明的方式设置它吗
也许这会有用
<PublishingWebControls:RichImageField id="InteriorHeaderImage" Value="[it should be this easy]" />
或者,您可以为页面布局设置代码隐藏,这应该比操作
ImageFieldValue
(根据您的链接)更容易。ImageFieldValue继承自HtmlTagValue类。ImageFieldValue有一个接受完整值的构造函数?您可以创建一个ImageFieldValue
内联吗
<PublishingWebControls:RichImageField id="InteriorHeaderImage" runat="server"
DefaultImageURL='<%# new ImageFieldValue("<img src=\"test.png\" />") %>' />
只有在某个时候调用控件的
DataBind()
方法时,这才有效。我也有同样的需要,最终创建了一个自定义控件,该控件将在预渲染时将占位符/默认图像添加到控件中。然后将自定义控件添加到页面布局中RichImageField控件的旁边
代码:
if ((PublishingPage.IsPublishingPage(SPContext.Current.ListItem)) &&
(SPContext.Current.FormContext.FormMode == SPControlMode.Edit || SPContext.Current.FormContext.FormMode == SPControlMode.New))
{
RichImageField image = (RichImageField)this.Parent.FindControl("rifPageImage");
if (image != null)
{
ImageFieldValue imgValue = (ImageFieldValue)image.Value;
if (imgValue.ImageUrl == string.Empty)
{
image.Value = new ImageFieldValue("<img src='/_layouts/images/GD/placeholder.png' />");
}
}
}
if((PublishingPage.IsPublishingPage(SPContext.Current.ListItem))&&
(SPContext.Current.FormContext.FormMode==SPControlMode.Edit | | SPContext.Current.FormContext.FormMode==SPControlMode.New))
{
RichImageField image=(RichImageField)this.Parent.FindControl(“rifPageImage”);
如果(图像!=null)
{
ImageFieldValue imgValue=(ImageFieldValue)image.Value;
if(imgValue.ImageUrl==string.Empty)
{
image.Value=新的ImageFieldValue(“”);
}
}
}
在母版页库中设置布局时,是否尝试为字段提供默认值
<Property Name="RichImageFieldName" Value="<![CDATA[<IMG SRC="images/pathtoimage.jpg"></IMG>]]>" />
安德罗·塞尔瓦的回答是正确的,但我必须稍微修改一下代码。因为我的代码隐藏也是自定义的,而不是使用:
RichImageField image = (RichImageField)this.Parent.FindControl("rifPageImage");
我用过:
Protected RichImageField rifPageImage;
我只是把所有的图片换成了图片。由于.cs文件未真正链接到我的.aspx文件,因此我得到了此.Parent.FindControl的空值。非常感谢您的输入。我测试了您的想法,但正如预期的那样,value属性不需要表示ImageFieldValue对象的字符串。我收到以下异常:无法从“Value”属性的字符串表示形式“test.png”创建类型为“System.object”的对象。好主意,我尝试了你的想法,但不幸的是没有任何运气。我想我必须尝试代码隐藏方法。
RichImageField image = (RichImageField)this.Parent.FindControl("rifPageImage");
Protected RichImageField rifPageImage;