SharePoint 2013中的自定义字段

时间:2014-05-22 13:21:30

标签: c# javascript web-services sharepoint sharepoint-2013

我已被委托将现有的自定义插件从SharePoint 2010迁移到2013. SharePoint 2013解决方案应创建一个自定义列,应使用webservice从我们的产品(应用程序)中获取数据。在2010年,使用renderpattern从fldtypes_xxxx.xml文件调用了js文件位置和函数。但是在2013年,由于UI已经改变,我无法链接JS文件。因此我不得不使用JSLink属性。参考下面的msdn文章并尝试了相同的。

http://msdn.microsoft.com/en-us/library/jj220061%28v=office.15%29.aspx

现在我想从JS文件中进行webservice调用。我需要获取文档的信息,如listid,itemID,并将其发送到我们的自定义Web服务,该Web服务处理请求,该请求应该向我们的外部应用程序发送webservice调用并获取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 +
        "' >&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;" + color;
}

1 个答案:

答案 0 :(得分:0)

上面的代码用于在视图中渲染字段。在这种情况下,您可以在favoriteColorViewTemplate函数中获取这些属性:

  • 列表ID:ctx.listName或来自全局变量_spPageContextInfo.pageListId
  • 商品编号:ctx.CurrentItem.ID

如果您将在显示或编辑表单中使用函数,这些属性会略有不同:

  • 列表ID:ctx.FormContext.listAttributes.Id_spPageContextInfo.pageListId
  • 商品编号:renderCtx.FormContext.itemAttributes.Id

可能,调用自定义Web服务的最简单方法是使用JQuery $.ajax(...)调用。在这里检查一些样品:

  1. http://api.jquery.com/jquery.ajax/
  2. http://www.w3schools.com/jquery/ajax_ajax.asp
  3. 如果你想引用JQuery,你也可以使用JSLink,使用|这样的符号:

    {path to JQuery}|{path to your JS file}