Sharepoint详细信息项页面

时间:2014-05-19 10:03:06

标签: rest sharepoint-2013

我遇到与此问题相同的问题SharePoint 2013 - display the detail from a list item in a branded page, NOT the default SharePoint details page 但我的问题是我还不明白如何使用这个脚本? 如何从网址中检索项目的ID以检索其详细信息?以及如何在我的页面中表示信息

1 个答案:

答案 0 :(得分:0)

因为这是一个广泛的问题,一个更一般的答案

在SharePoint上访问/显示数据的最常用方法

  • asp.net webpart
  • asp.net page
  • silverlight webpart
  • 基于javascript的sharepoint应用

使用asp.net,您将主要使用SharePoint对象模型,使用SandBoxed或Form解决方案访问数据,方法是查询SPSite - > SPWeb - > SPList - > SPListItem,如

using (SPSite site = new SPSite("Url to SharePoint site"))
{
    using (SPWeb web = site.OpenWeb("Url to SharePoint web"))
    {
        SPList list = web.TryGetList("ListName");
        SPListItem item = list.GetItemById(ID);
        ...
        or
        ...
        SPQuery query = new SPQuery();
        query.Query = '<Where><Eq><FieldRef Name="ID" /><Value Type="Number">ID</Value>';
        SPListItemCollection collection = list.GetItems(query);

        foreach (SPListItem item in collection) {
            ...
        }
    }
}

Silverlight和Javascript使用Rest服务或SharePoint客户端对象模型

使用Javascript你可以使用:   - 通过使用odata兼容的Rest服务(部分允许使用托管元数据)进行AJAX调用,   - SharePoint CSOM   - 较旧的SOAP服务   - SPDataQuery

odata webservice允许您根据以下网址获取数据:

  • 列出:http://sharepointsite/web/_api/lists
  • listdetail:http://sharepointsite/web/_api/lists/getbytitle(%27listName%27)
  • 字段:http://sharepointsite/web/_api/lists/getbytitle(%27listName%27)/Fields
  • 项目:http://sharepointsite/web/_api/lists/getbytitle(%27listName%27)/Items
  • 特定项目:http://sharepointsite/web/_api/lists/getbytitle(%27listName%27)/Items?$filter=(ID eq 1)

根据请求标头

,返回的数据是xml atom feed或json

如果你使用jquery,你可以使用

<script type="text/javascript">
function getItem(list, id, callback) {
    var url = _spPageContextInfo.webAbsoluteUrl;
    $.ajax({
        url: url + '/_api/lists/getbytitle(%27' + list + '%27)/Items(' + id + ')',
        header: {
            'accept': 'application/json;odata=verbose'
        },
        complete: function(data, status) {
            if (status === 'error') {
                // error occured
                callback(false);
                return;
            }
            var results = JSON.parse(data.responseText).d.results, i;
            callback(true, results);
        }
    });
}

getItem('listName', 5, function(success, results) {
    if (success) {
        // results is an array of objects with data
    }
});
</script>