我目前正在移植一个内部使用的SP农场解决方案从2010年到2013年,并正在努力与JsLink的新概念。

在2010年的解决方案中,我们已经复盖了 RenderingTemplate ListForm 要包含一个 自定义保存和关闭按钮 我们建造的。现在有了SP2013,有那些新的Jslink可能会处理这个问题。

我正在考虑创建一个带有事件接收器的功能,当激活时会更改当前web上所有contenttypes的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,请参阅我的另一个答案: 自定义新窗体。SharePoint2013中使用jslink的列表的aspx

许可以下: CC-BY-SA归因
scroll top