none
Изменение колонок в списках Sharepoint RRS feed

  • Вопрос

  • Добрый день.

    Установлен Sharepoint 2013 Foundation

    Создан список.

    На основной странице списка (там где отображаются все элементы) есть колонка СОЗДАНО, где видна дата создания элемента списка в формате

    11.07.2020 22.21

    можно ли настроить эту колонку так , чтобы дата отображалась в две строки? т.е.

    11.07.2020

    22.21

    пытался регулировать ширину колонок с помощью

    _spBodyOnLoadFunctionNames.push("AdjustColumnWidth");
       function AdjustColumnWidth() {
          $("div.ms-vh-div[DisplayName='Заголовок']").attr("style", "WIDTH: 250px;");
          $("div.ms-vh-div[DisplayName='Тема']").attr("style", "WIDTH: 180px;");
          $("div.ms-vh-div[DisplayName='Статус']").attr("style", "WIDTH: 120px;");
       }

    но работает данный механизм странно, вроде бы одни колонки меняет , другие нет.

    Ширину колонки с датой изменить не удалось.

    Заранее спасибо за ответы.


    12 июля 2020 г. 11:34

Ответы

  • Используйте JSLink, функцию linkFilenameFiledTemplate примените к каждому столбцу Даты, который вам нужно отобразить таким образом:

     (function () { 
            var linkFilenameFiledContext = {}; 
            linkFilenameFiledContext.Templates = {}; 
            linkFilenameFiledContext.Templates.Fields = { 
                "Date": { "View": linkFilenameFiledTemplate } 
            };
                SPClientTemplates.TemplateManager.RegisterTemplateOverrides(linkFilenameFiledContext); 
        })(); 
    
        function linkFilenameFiledTemplate(ctx) {
            var currentdate = ctx.CurrentItem["Date"];
            if (currentdate != "") {
            var date = currentdate.toString().substring(currentdate.lastIndexOf(" "), - 1);
            var time = currentdate.toString().substring(currentdate.lastIndexOf(" ") + 1);
            return date + "<br>" + time;
            }
        }


    15 июля 2020 г. 12:27

Все ответы

  • Привет,

    Не уверен, что это возможно, но как обходный путь, могу предложить настроить чтобы колонка показывала только дату и потом добавить дополнительную колонку котороя будет показывать только время.

    Одна колонка будет:

    =TEXT([Created],"dd/MM/yyyy")

    А другая:

    =TEXT(Created,"hh:mm AM/PM")


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные, если они Вам помогли.


    15 июля 2020 г. 7:53
    Модератор
  • Используйте JSLink, функцию linkFilenameFiledTemplate примените к каждому столбцу Даты, который вам нужно отобразить таким образом:

     (function () { 
            var linkFilenameFiledContext = {}; 
            linkFilenameFiledContext.Templates = {}; 
            linkFilenameFiledContext.Templates.Fields = { 
                "Date": { "View": linkFilenameFiledTemplate } 
            };
                SPClientTemplates.TemplateManager.RegisterTemplateOverrides(linkFilenameFiledContext); 
        })(); 
    
        function linkFilenameFiledTemplate(ctx) {
            var currentdate = ctx.CurrentItem["Date"];
            if (currentdate != "") {
            var date = currentdate.toString().substring(currentdate.lastIndexOf(" "), - 1);
            var time = currentdate.toString().substring(currentdate.lastIndexOf(" ") + 1);
            return date + "<br>" + time;
            }
        }


    15 июля 2020 г. 12:27
  • Спасибо.

    Извиняюсь за задержку с ответом...

    Пока не получилось. Как я делал.

    Графу с датой и временем переименовал в Date (как в примере)

    Создал файл My.js куда поместил код

    (function () { var linkFilenameFiledContext = {}; linkFilenameFiledContext.Templates = {}; linkFilenameFiledContext.Templates.Fields = { "Date": { "View": linkFilenameFiledTemplate } }; SPClientTemplates.TemplateManager.RegisterTemplateOverrides(linkFilenameFiledContext); })(); function linkFilenameFiledTemplate(ctx) { var currentdate = ctx.CurrentItem["Date"]; if (currentdate != "") { var date = currentdate.toString().substring(currentdate.lastIndexOf(" "), - 1); var time = currentdate.toString().substring(currentdate.lastIndexOf(" ") + 1); return date + "<br>" + time; } }

    Файл этот разместил в /bz/SiteAssets/My.js (С помощью Дезайнера)

    В требуемой форме назначил его через пункт ИЗМЕНЕНИЕ ВЭБ СТРАНИЦЫ\Разное

    Подскажите , что не так?

    Заранее спасибо!

    24 июля 2020 г. 20:53
  • Ещё раз спасибо. Заработало!!!

    У меня Проблема была в 2 местах

    1. Через JSLink не хотел скрипт подключаться , я его подключил как обычную JQuery библиотеку в Content Editor 

    <script src="/bz/SiteAssets/MyJSLink.js" type="text/javascript"></script>

    2. Имена граф у меня были на русском. Видимо с кириллицей не работает. Пришлось использовать оригинальные названия граф (я их вначале создавал на латинице, потом переименовывал на русский), там вот при указании оригинальных названий на лат. все заработало.

    Спасибо!

    25 июля 2020 г. 11:16