Pregunta

Actualmente estoy portando un SP Farm-Solution usado internamente de 2010 a 2013 y estoy luchando con el nuevo concepto de JsLink.

En la solución de 2010 habíamos sobrescrito el RenderingTemplate ListForm contener un botón personalizado para guardar y cerrar construido por nosotros.Ahora, con SP2013, existen nuevos JsLinks que posiblemente podrían manejar esto.

Estaba pensando en crear una función con un receptor de eventos detrás, que cuando se activa altera la propiedad JsLink de todos los tipos de contenido en la web actual y registra nuestro propio archivo javascript.

Sin embargo, todos los tutoriales/entradas de blog que he encontrado hasta ahora solo explican "Cómo personalizar la representación de su campo con JsLink" y no cómo cambiar cosas como la apariencia del botón Guardar.

¿Hay alguien que pueda ayudarme aquí?Ya llevo un día buscando y no he podido encontrar nada útil hasta ahora.

¿Fue útil?

Solución

Podrías usar el evento "PostRender" para ejecutar tu método javascript después de que el formulario esté completamente cargado, 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);
            }
        }
    }
}

este es un ejemplo modificado del código que se encuentra aquí http://msdn.microsoft.com/en-us/library/office/jj220045%28v=office.15%29.aspx, obtiene más información y más código de ejemplo (por ejemplo, dirigido a vistas específicas, etc.).

Aún puede adjuntar esto a un solo campo y, al ejecutar PostRender, esto se ejecutará en todas las representaciones, incluido ese campo, etc.

Para saber cómo orientar su JSLink solo a NewForm o EditForm, consulte esta otra respuesta mía: Personalizar el newform.aspx de una lista usando jslink en SharePoint 2013

Licenciado bajo: CC-BY-SA con atribución
scroll top