JSLink на Listitems отключает функцию сортировки

При попытке поместить следующий скрипт в CEWP в Listview:

 ; (function () 
  {
var fieldJsLinkOverride = {};
fieldJsLinkOverride.Templates = {};
fieldJsLinkOverride.Templates.Fields =
    {
        'Title': { //Titelfeld
        'View': function () {
         return '<a href=\" //url of th sp site' + ctx.CurrentItem.ItemID+ '\" target=\"_blank\">'+ctx.CurrentItem.Title+'</a>'  
                            }
              }
    };

// Register the rendering template
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(fieldJsLinkOverride);
 })();

Таким образом, это меняет поле Заголовок на желаемую ссылку, все работает нормально, но когда я пытаюсь отсортировать список, он возвращает следующее:

  Unable to get property 'ItemID' of undefined or null 

Кто-нибудь знает эту проблему или может найти решение для нее?

1 ответ

Ты используешь ctx в вашем коде, но вы не передали его в свою функцию..

Помните, что каждой функции, которую вы пишете для JS Link, будет передан объект "context" в качестве параметра. Из этого объекта вы можете получить свойства о текущем списке, текущем элементе списка и других объектах.

Смотрите ниже код. Здесь мы проходим ctx к функции. Попробуй это:

{
        'Title': { //Titelfeld
        'View': function (ctx) {
         return '<a href=\" //url of th sp site' + ctx.CurrentItem.ItemID+ '\" target=\"_blank\">'+ctx.CurrentItem.Title+'</a>'  
                            }
              }
    };
Другие вопросы по тегам