我在SharePoint 2013中创建了一个继承自SPFieldUser字段的自定义字段类型。我将覆盖默认值,以便自动默认用户的管理员。在新的,编辑和显示表单上一切正常但我无法在列表视图上正确格式化。 html在页面上呈现为文本而不是html。我从SPFieldUser控件复制了RenderPatterns,但这似乎没有对它的渲染方式产生任何影响。 还有别的东西我可能会丢失,或者之前有人见过这个吗?
答案 0 :(得分:0)
从版本14(SharePoint 2010)开始,RenderPattern为obsolete。因此,RenderPattern不会影响Field在列表视图中的呈现方式。
要为自定义字段定义自定义渲染,请按照How to: Customize a field type using client-side rendering进行操作。 由于客户端呈现(CSR)是SharePoint 2013中的默认呈现机制,因此指定的文章描述了在通过CSR在视图表单中显示自定义字段类型时,如何提供自定义字段类型的呈现逻辑。
下面的代码演示了如何在视图表单中显示自定义字段类型(FavoriteColorField)的呈现逻辑
(function () {
var favoriteColorContext = {};
// You can provide templates for:
// View, DisplayForm, EditForm and NewForm
favoriteColorContext.Templates = {};
favoriteColorContext.Templates.Fields = {
"FavoriteColorField": {
"View": favoriteColorViewTemplate
}
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(
favoriteColorContext
);
})();
// The favoriteColorViewTemplate provides the rendering logic
// the custom field type when it is displayed in the view form.
function favoriteColorViewTemplate(ctx) {
var color = ctx.CurrentItem[ctx.CurrentFieldSchema.Name];
return "<span style='background-color : " + color +
"' > </span> " + color;
}
可以从here
下载代码示例基于XSL的呈现在SharePoint 2013中仍然有效,为了定义自定义字段的自定义呈现,请参阅How to: Customize the Rendering of a Field on a List View或this answer