【问题标题】:Modifying the default list form with CSR in SharePoint 2016在 SharePoint 2016 中使用 CSR 修改默认列表表单
【发布时间】:2019-10-19 11:07:30
【问题描述】:

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

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

我一直在关注 Andrei Markeev 关于该主题的文章(SP CSR List FormsSP CSR List Forms + Layout),但还没有可以显示的工作代码。这是我记录我关心交换的两个字段:

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

最简单的方法是什么?

【问题讨论】:

    标签: sharepoint sharepoint-2016


    【解决方案1】:

    不太确定您的要求“交换”,而您可以使用 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>
    

    【讨论】:

    • 嗨@Lee_MSFT,非常感谢这个例子,它很有帮助。
    猜你喜欢
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 2019-08-17
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多