JS 字段渲染 return 标准字段渲染
JS field rendering return standard field rendering
如何return一个字段的标准渲染?
(function () {
var readonlyFiledContext = {};
readonlyFiledContext.Templates = {};
readonlyFiledContext.Templates.Fields = {
// Apply the new rendering for Age field on Edit forms
"Title": {
"EditForm": FieldTemplate
}
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(FiledContext);
})();
function FieldTemplate(ctx) {
return ;
}
}
这取决于我喜欢呈现字段的值。当该值不为 null 时,让它变得花哨,当它等于“null”时,则像标准渲染一样渲染。我如何才能在这段代码中 return 标准字段渲染?
感谢帮助
斯特凡
以下示例演示了如果值不为空,如何使用默认呈现模板呈现文本字段:
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function() {
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
Templates: {
Fields: {
"ReqNo": {
EditForm: renderRegNo,
}
}
}
});
});
function renderRegNo(ctx){
if(ctx.CurrentItem.RegNo.length == 0) {
return "Request number is missing";
}
return SPFieldText_Edit(cxt);
}
Note: it is assumed that the RegNo
field is of Text
type
clientforms.js
包含默认字段呈现模板列表(每个字段类型):
var spfieldCtx = {
Templates: {
Fields: {
'Text': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPFieldText_Edit,
'NewForm': SPFieldText_Edit
},
'Number': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPFieldNumber_Edit,
'NewForm': SPFieldNumber_Edit
},
'Integer': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPFieldNumber_Edit,
'NewForm': SPFieldNumber_Edit
},
'Boolean': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_DefaultNoEncode,
'EditForm': SPFieldBoolean_Edit,
'NewForm': SPFieldBoolean_Edit
},
'Note': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldNote_Display,
'EditForm': SPFieldNote_Edit,
'NewForm': SPFieldNote_Edit
},
'Currency': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPFieldNumber_Edit,
'NewForm': SPFieldNumber_Edit
},
'File': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldFile_Display,
'EditForm': SPFieldFile_Edit,
'NewForm': SPFieldFile_Edit
},
'Calculated': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPField_FormDisplay_Empty,
'NewForm': SPField_FormDisplay_Empty
},
'Choice': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPFieldChoice_Edit,
'NewForm': SPFieldChoice_Edit
},
'MultiChoice': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPFieldMultiChoice_Edit,
'NewForm': SPFieldMultiChoice_Edit
},
'Lookup': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldLookup_Display,
'EditForm': SPFieldLookup_Edit,
'NewForm': SPFieldLookup_Edit
},
'LookupMulti': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldLookup_Display,
'EditForm': SPFieldLookup_Edit,
'NewForm': SPFieldLookup_Edit
},
'Computed': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPField_FormDisplay_Default,
'NewForm': SPField_FormDisplay_Default
},
'URL': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldUrl_Display,
'EditForm': SPFieldUrl_Edit,
'NewForm': SPFieldUrl_Edit
},
'User': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldUser_Display,
'EditForm': SPClientPeoplePickerCSRTemplate,
'NewForm': SPClientPeoplePickerCSRTemplate
},
'UserMulti': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldUserMulti_Display,
'EditForm': SPClientPeoplePickerCSRTemplate,
'NewForm': SPClientPeoplePickerCSRTemplate
},
'DateTime': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldDateTime_Display,
'EditForm': SPFieldDateTime_Edit,
'NewForm': SPFieldDateTime_Edit
},
'Attachments': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldAttachments_Default,
'EditForm': SPFieldAttachments_Default,
'NewForm': SPFieldAttachments_Default
}
}
}
};
另一个使用 SPCSR 助手的选项 - https://github.com/sdaly2107/SPCSR_Helper
SPCSR.Utils.HookFieldTemplates({
'ReqNo': function(ctx, template) {
if(ctx.CurrentItem.RegNo.length == 0) {
template.html "Request number is missing";
}
}
}
如果您尝试 return 用户字段的只读值,您需要在 return 之前格式化结果(SPFieldUser_Display 不会 return 任何东西)。
function prepareUserFieldValue(ctx) {
var item = ctx['CurrentItem'];
var userField = item[ctx.CurrentFieldSchema.Name];
var fieldValue = "";
for (var i = 0; i < userField.length; i++) {
fieldValue += userField[i].EntityData.SPUserID + SPClientTemplates.Utility.UserLookupDelimitString + userField[i].DisplayText;
if ((i + 1) != userField.length) {
fieldValue += SPClientTemplates.Utility.UserLookupDelimitString
}
}
ctx["CurrentFieldValue"] = fieldValue;
}
感谢http://sp77.blogspot.com/2017/07/client-side-rendering-csr-in-sharepoint.html
你可以这样称呼它:
ReadOnlyUserField = function(ctx) {
prepareUserFieldValue(ctx)
return SPFieldUser_Display(ctx);
};
希望对某人有所帮助! (可能是我在 6 个月后完全忘记了这一点)
如何return一个字段的标准渲染?
(function () {
var readonlyFiledContext = {};
readonlyFiledContext.Templates = {};
readonlyFiledContext.Templates.Fields = {
// Apply the new rendering for Age field on Edit forms
"Title": {
"EditForm": FieldTemplate
}
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(FiledContext);
})();
function FieldTemplate(ctx) {
return ;
}
}
这取决于我喜欢呈现字段的值。当该值不为 null 时,让它变得花哨,当它等于“null”时,则像标准渲染一样渲染。我如何才能在这段代码中 return 标准字段渲染?
感谢帮助 斯特凡
以下示例演示了如果值不为空,如何使用默认呈现模板呈现文本字段:
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function() {
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
Templates: {
Fields: {
"ReqNo": {
EditForm: renderRegNo,
}
}
}
});
});
function renderRegNo(ctx){
if(ctx.CurrentItem.RegNo.length == 0) {
return "Request number is missing";
}
return SPFieldText_Edit(cxt);
}
Note: it is assumed that the
RegNo
field is ofText
type
clientforms.js
包含默认字段呈现模板列表(每个字段类型):
var spfieldCtx = {
Templates: {
Fields: {
'Text': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPFieldText_Edit,
'NewForm': SPFieldText_Edit
},
'Number': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPFieldNumber_Edit,
'NewForm': SPFieldNumber_Edit
},
'Integer': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPFieldNumber_Edit,
'NewForm': SPFieldNumber_Edit
},
'Boolean': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_DefaultNoEncode,
'EditForm': SPFieldBoolean_Edit,
'NewForm': SPFieldBoolean_Edit
},
'Note': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldNote_Display,
'EditForm': SPFieldNote_Edit,
'NewForm': SPFieldNote_Edit
},
'Currency': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPFieldNumber_Edit,
'NewForm': SPFieldNumber_Edit
},
'File': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldFile_Display,
'EditForm': SPFieldFile_Edit,
'NewForm': SPFieldFile_Edit
},
'Calculated': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPField_FormDisplay_Empty,
'NewForm': SPField_FormDisplay_Empty
},
'Choice': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPFieldChoice_Edit,
'NewForm': SPFieldChoice_Edit
},
'MultiChoice': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPFieldMultiChoice_Edit,
'NewForm': SPFieldMultiChoice_Edit
},
'Lookup': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldLookup_Display,
'EditForm': SPFieldLookup_Edit,
'NewForm': SPFieldLookup_Edit
},
'LookupMulti': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldLookup_Display,
'EditForm': SPFieldLookup_Edit,
'NewForm': SPFieldLookup_Edit
},
'Computed': {
'View': RenderFieldValueDefault,
'DisplayForm': SPField_FormDisplay_Default,
'EditForm': SPField_FormDisplay_Default,
'NewForm': SPField_FormDisplay_Default
},
'URL': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldUrl_Display,
'EditForm': SPFieldUrl_Edit,
'NewForm': SPFieldUrl_Edit
},
'User': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldUser_Display,
'EditForm': SPClientPeoplePickerCSRTemplate,
'NewForm': SPClientPeoplePickerCSRTemplate
},
'UserMulti': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldUserMulti_Display,
'EditForm': SPClientPeoplePickerCSRTemplate,
'NewForm': SPClientPeoplePickerCSRTemplate
},
'DateTime': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldDateTime_Display,
'EditForm': SPFieldDateTime_Edit,
'NewForm': SPFieldDateTime_Edit
},
'Attachments': {
'View': RenderFieldValueDefault,
'DisplayForm': SPFieldAttachments_Default,
'EditForm': SPFieldAttachments_Default,
'NewForm': SPFieldAttachments_Default
}
}
}
};
另一个使用 SPCSR 助手的选项 - https://github.com/sdaly2107/SPCSR_Helper
SPCSR.Utils.HookFieldTemplates({
'ReqNo': function(ctx, template) {
if(ctx.CurrentItem.RegNo.length == 0) {
template.html "Request number is missing";
}
}
}
如果您尝试 return 用户字段的只读值,您需要在 return 之前格式化结果(SPFieldUser_Display 不会 return 任何东西)。
function prepareUserFieldValue(ctx) {
var item = ctx['CurrentItem'];
var userField = item[ctx.CurrentFieldSchema.Name];
var fieldValue = "";
for (var i = 0; i < userField.length; i++) {
fieldValue += userField[i].EntityData.SPUserID + SPClientTemplates.Utility.UserLookupDelimitString + userField[i].DisplayText;
if ((i + 1) != userField.length) {
fieldValue += SPClientTemplates.Utility.UserLookupDelimitString
}
}
ctx["CurrentFieldValue"] = fieldValue;
}
感谢http://sp77.blogspot.com/2017/07/client-side-rendering-csr-in-sharepoint.html
你可以这样称呼它:
ReadOnlyUserField = function(ctx) {
prepareUserFieldValue(ctx)
return SPFieldUser_Display(ctx);
};
希望对某人有所帮助! (可能是我在 6 个月后完全忘记了这一点)