В этой статье я расскажу, как можно убрать ссылки с Lookup поля в представлении. Для этого мы переопределим шаблон рендера полей.
Для этого нам нужно или создать файл js и подключить его к веб-части через jsLink, можно добавить ссылку на файл через веб-часть «Редактор скриптов» или можно просто добавить код непосредственно в веб-часть «Редактор скриптов».
для начала нужно перечислить поля для которых мы будем переопределять шаблон рендера
далее сама функция RemoveLinkToField
в ней происходит проверка какого типа поле отправили в функцию и если "Lookup" или "LookupMulti", то убираем ссылку. для всех остальных типов полей значение возвращается как оно и было изначально.
весь код:
надеюсь статья была вам полезна.
Для этого нам нужно или создать файл js и подключить его к веб-части через jsLink, можно добавить ссылку на файл через веб-часть «Редактор скриптов» или можно просто добавить код непосредственно в веб-часть «Редактор скриптов».
для начала нужно перечислить поля для которых мы будем переопределять шаблон рендера
(function () { var overrideCtx = {}; overrideCtx.Templates = {}; overrideCtx.Templates.Fields = { "Phone": { // интерал нейм поля "View": RemoveLinkToField // для какого представления и с помощью какой функции осуществляем рендер } }; SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx); })();
далее сама функция RemoveLinkToField
в ней происходит проверка какого типа поле отправили в функцию и если "Lookup" или "LookupMulti", то убираем ссылку. для всех остальных типов полей значение возвращается как оно и было изначально.
function RemoveLinkToField(ctx) { var fieldValue = ctx.CurrentItem[ctx.CurrentFieldSchema.Name]; switch (ctx.CurrentFieldSchema.FieldType) { case "Lookup": return fieldValue[0].lookupValue; break; case "LookupMulti": var array = []; for (var i = 0; i < fieldValue.length; i++) { array.push(fieldValue[i].lookupValue); } return array.join("; "); break; default: return fieldValue; } }
весь код:
(function () { var overrideCtx = {}; overrideCtx.Templates = {}; overrideCtx.Templates.Fields = { "Phone": { "View": RemoveLinkToField } }; SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx); })(); function RemoveLinkToField(ctx) { var fieldValue = ctx.CurrentItem[ctx.CurrentFieldSchema.Name]; switch (ctx.CurrentFieldSchema.FieldType) { case "Lookup": return fieldValue[0].lookupValue; break; case "LookupMulti": var array = []; for (var i = 0; i < fieldValue.length; i++) { array.push(fieldValue[i].lookupValue); } return array.join("; "); break; default: return fieldValue; } }
надеюсь статья была вам полезна.
Комментариев нет:
Отправить комментарий