我遇到与此问题相同的问题SharePoint 2013 - display the detail from a list item in a branded page, NOT the default SharePoint details page 但我的问题是我还不明白如何使用这个脚本? 如何从网址中检索项目的ID以检索其详细信息?以及如何在我的页面中表示信息
答案 0 :(得分:0)
因为这是一个广泛的问题,一个更一般的答案
在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
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>