Pergunta

Atualmente, estou a portar um internly utilizado SP Fazenda-Solução de 2010 a 2013 e estou lutando com o novo conceito de JsLink.

Em 2010, solução que tinha substituído o RenderingTemplate ListForm para conter um personalizado botão salvar e fechar construído por nós.Agora com SP2013 há aqueles novo JsLinks que poderia lidar com isso.

Eu estava pensando em criar um recurso com um receptor de eventos atrás, que quando ativados altera o JsLink propriedade de todos os contenttypes na web atual e regista o nosso próprio arquivo javascript.

No entanto, todos os tutoriais / entradas de blog que eu encontrei até agora só explicar "Como personalizar o processamento de campo com JsLink" e não como alterar coisas como a aparência do botão salvar.

Existe alguém que poderia me ajudar aqui?Foi pesquisando em torno de um dia e já não podia encontrar nada de útil até agora.

Foi útil?

Solução

Você pode usar a opção "PostRender" de eventos para executar o método javascript depois que o formulário é carregado, algo como:

(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);
            }
        }
    }
}

esta é uma modificação do exemplo de código encontrado aqui http://msdn.microsoft.com/en-us/library/office/jj220045%28v=office.15%29.aspx, você tem mais informações e mais algum exemplo de código (por exemplo, a segmentação de pontos de vista específicos, etc.).

Você ainda pode anexar a um único campo e executando o PostRender você vai ter essa de executar em todas as representações, incluindo esse campo etc.

Para saber como alvo o seu JSLink apenas NewForm ou EditForm, veja esta outra resposta por mim: Customing o newform.aspx de uma lista usando jslink no SharePoint 2013

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top