Изменение кнопки «Сохранить и закрыть» ListForm через JsLink

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/96602

Вопрос

В настоящее время я портирую используемое внутри компании SP Farm-Solution с 2010 по 2013 год и борюсь с новой концепцией JsLink.

В решении 2010 года мы перезаписали RenderingTemplate ListForm содержать пользовательская кнопка сохранения и закрытия построенный нами.Теперь с SP2013 появились новые JsLinks, которые могли бы справиться с этим.

Я думал о создании функции с приемником событий, который при активации изменяет свойство JsLink всех типов контента в текущей сети и регистрирует наш собственный файл javascript.

Однако все учебники/записи в блогах, которые я нашел до сих пор, объясняют только «Как настроить отрисовку вашего поля с помощью JsLink», а не как изменить такие вещи, как внешний вид кнопки сохранения.

Есть ли здесь кто-нибудь, кто мог бы мне помочь?Искал уже около суток и пока не нашел ничего полезного.

Это было полезно?

Решение

Вы можете использовать событие PostRender для выполнения метода javascript после полной загрузки формы, например:

(function () {
    // Initialize the variable that stores the objects.
    var overrideCtx = {};
    overrideCtx.Templates = {};

    // Assign a function to handle the
    // PostRender events
    overrideCtx.OnPostRender = postRenderHandler;

    // Register the template overrides.
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
})();

// The postRenderHandler attends the OnPostRender event
function postRenderHandler(ctx) {

    // You can manipulate the DOM in the postRender event
    var ulObj;
    var i, j;

    ulObj = document.getElementById("unorderedlist");

    // Reverse order the list.
    for (i = 1; i < ulObj.children.length; i++) {
        var x = ulObj.children[i];
        for (j = 1; j < ulObj.children.length; j++) {
            var y = ulObj.children[j];
            if(x.innerText<y.innerText){                  
                ulObj.insertBefore(y, x);
            }
        }
    }
}

это модифицированный пример кода, найденного здесь http://msdn.microsoft.com/en-us/library/office/jj220045%28v=office.15%29.aspx, вы получите дополнительную информацию и еще несколько примеров кода (например, таргетинг на определенные представления и т. д.).

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

О том, как настроить JSLink только на NewForm или EditForm, см. в другом моем ответе: Настройка файла newform.aspx списка с помощью jslink в SharePoint 2013.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top