在 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>
我是一名新的 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>