首先感谢“Verona Chen”和“DIEGO CARRASCAL”,因为我在 SharePoint 中学到了一些其他技巧,这将有助于其他项目。
问题之前我的原始脚本试图使用查询字符串来填充 newform.aspx 中的字段(我在 sharepoint 2013 上使用我在这里找到的代码完成了此操作)
Unforuntaly with sharepoint online/365 此代码不再有效。
这段代码解决了我的问题(尽管它确实改变了前几页的构造方式)
如果这不能直接回答上述问题(因为这是我试图根据我缩小原始代码中的问题范围而将我遇到的整体问题分解为更简单、更容易解决的问题),但我现在已经起来了和跑步,似乎只是礼貌地发布结果。
在代码之前,我有一个带有“ProjectName”字段的项目列表。我将字段名称发送到 URL 和查询字符串以获取 mylist/newform.aspx?ProjectName=Test2
然后我试图将该Test2拉到列表“MyList”中的查找字段(喜欢项目列表)“ProjectName”
但即使使用 _spBodyOnLoadFunctionNames.push() 为我的旧脚本加载函数,它也无法正常工作。
在玩了一段时间之后,在环顾四周后,我发现了这段代码
<script type="text/javascript">
(function () {
var ctx = {};
ctx.Templates = {};
ctx.Templates.Fields = {
'ProjectName': {
'NewForm': renderTaskCategory
}
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(ctx);
})();
function renderTaskCategory(ctx) {
//extract cat parameter from a query string
var GetProjID = GetUrlKeyValue('ProjID');
//set lookup field value
ctx.CurrentFieldValue = GetProjID;
//default template for rendering Lookup field control
return SPFieldLookup_Edit(ctx);
}
</script>
这意味着我必须更改我以前的 url 构建以创建 mylist/newform.aspx?ProjID=2
该脚本然后找到项目 ID 2(在这种情况下恰好是 test2)并将项目 2 的标题放入我的查找字段 ProjectName
再次感谢之前帮助过的人。如果这不能直接回答我最初提出的问题,请再次道歉。