我受托将现有的自定义插件从 SharePoint 2010 迁移到 2013。SharePoint 2013 解决方案应该创建一个自定义列,应该使用 Web 服务从我们的产品(应用程序)中获取数据。在 2010 中,js 文件位置和函数已使用渲染模式从 fldtypes_xxxx.xml 文件中调用。但是在 2013 年,由于 UI 发生了变化,我无法链接 JS 文件。因此我不得不使用 JSLink 属性。引用下面的 msdn 文章并尝试了相同的方法。
http://msdn.microsoft.com/en-us/library/jj220061%28v=office.15%29.aspx
现在我想从 JS 文件进行网络服务调用。我需要获取文档的信息,如 listid、itemID,并将其发送到我们的自定义 Web 服务,该服务处理请求,后者应向我们的外部应用程序发送 Web 服务调用,并在 Sharepoint 库中获取相应文档的数据。
请指导我。
如何添加来自以下函数的调用。
(function () {
var favoriteColorContext = {};
favoriteColorContext.Templates = {};
favoriteColorContext.Templates.Fields = {
"FavoriteColorField": {
"View": favoriteColorViewTemplate
}
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(
favoriteColorContext
);
})();
function favoriteColorViewTemplate(ctx) {
var color = ctx.CurrentItem[ctx.CurrentFieldSchema.Name];
return "<span style='background-color : " + color +
"' > </span> " + color;
}
最佳答案
您上面的代码用于在 View 中渲染字段。在这种情况下,您可以在 favoriteColorViewTemplate
函数中获取这些属性:
- 列表 ID:
ctx.listName
或来自全局变量_spPageContextInfo.pageListId
- 项目 ID:
ctx.CurrentItem.ID
如果您将在显示或编辑表单中使用函数,这些属性会有些不同:
- 列表 ID:
ctx.FormContext.listAttributes.Id
或_spPageContextInfo.pageListId
- 项目 ID:
renderCtx.FormContext.itemAttributes.Id
调用自定义 Web 服务的最简单方法可能是使用 JQuery $.ajax(...)
调用。在此处检查一些示例:
如果你想引用 JQuery,你也可以使用 JSLink,使用 |
符号,像这样:
{JQuery 的路径}|{您的 JS 文件的路径}
关于c# - SharePoint 2013 中的自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23808095/