Question

Je suis actuellement sur le portage d'une internly utilisé SP Ferme-Solution de 2010 à 2013 et je suis aux prises avec le nouveau concept de JsLink.

En 2010, la solution nous avait écrasé le RenderingTemplate ListForm pour contenir un personnalisé bouton enregistrer et fermer construit par nous.Maintenant, avec SP2013 il y a ces nouveaux JsLinks qui pourrait éventuellement gérer cela.

Je pensais créer une fonction avec un récepteur d'événement derrière elle, que lorsqu'il est activé modifie la JsLink la propriété de tous les contenttypes sur le site web en cours et les registres de notre propre fichier javascript.

Cependant, tous les tutoriels / les entrées de blog que j'ai trouvé jusqu'à présent seulement d'expliquer "Comment personnaliser le rendu de votre domaine avec JsLink", et non pas comment changer des trucs comme l'apparence du bouton enregistrer.

Est-il quelqu'un qui pourrait m'aider ici?Été la recherche autour d'une journée déjà et ne pouvait pas trouver quelque chose d'utile à ce jour.

Était-ce utile?

La solution

Vous pouvez utiliser le "PostRender" événement à exécuter javascript de votre méthode d'après la forme est complètement chargé, quelque chose comme:

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

c'est une modification de l'exemple de code trouvé ici http://msdn.microsoft.com/en-us/library/office/jj220045%28v=office.15%29.aspx, vous obtenez plus d'informations et plus d'un exemple de code (par exemple le ciblage spécifique de points de vue, etc).

Vous pouvez toujours joindre ce fichier à un seul champ et par l'exécution de la PostRender vous aurez cette exécution dans tous les rendus, y compris le champ etc.

Pour comment cibler votre JSLink à seulement NewForm ou EditForm, voir cette autre réponse par moi: Customing la newform.aspx d'une liste à l'aide de jslink dans SharePoint 2013

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top