В этой статье я расскажу, как можно убрать ссылки с 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;
}
}
надеюсь статья была вам полезна.

Комментариев нет:
Отправить комментарий