通过JsLink修改ListForm保存和关闭按钮
-
10-12-2019 - |
题
我目前正在移植一个内部使用的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