在 SharePoint 2016 中使用 CSR 修改默认列表表单

Modifying the default list form with CSR in SharePoint 2016

我是一名新的 SharePoint 开发人员,在 2016 on-prem 环境中工作。我一直在探索使用标准 Client-Side 渲染渲染模式修改列表表单的选项,但我不知道如何在 SPClientTemplates.TemplateManager.RegisterTemplateOverrides 方法中完成简单任务。

NewForm.aspx 页面上,我想交换默认表单每一行中的描述字段(显示在每个输入字段下方)和标题字段(左列中的标签)。我可以在相关方法的 ctx object 中访问这些数据字段,但我似乎无法编写可以完成交换它们的解决方案。

我一直在关注 Andrei Markeev 关于该主题的文章 (SP CSR List Forms and SP CSR List Forms + Layout),但没有可用的代码来展示它。这是我记录的两个与交换有关的字段:

SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
  OnPreRender: function(ctx) {
    console.log(ctx.ListSchema.Field[0].Description);
    console.log(ctx.ListSchema.Field[0].Title);
  }
});

最简单的方法是什么?

不太确定您的要求 'swap',但您可以使用 jQuery 更新 DOM 结构。

这是更改字段注释渲染(从最后一个到第二个)的演示。

企业社会责任结果。

将脚本编辑器 webpart 插入到新表单中并将脚本插入其中。

<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script type="text/javascript">
        SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
            OnPreRender: function (ctx) {
                //console.log(ctx.ListSchema.Field[0].Description);
                //console.log(ctx.ListSchema.Field[0].Title);
                $("nobr:contains('Comment')").closest('tr').insertBefore($('table.ms-formtable>tbody>tr:nth-child(2)'));
            }
        });
    </script>