我在SharePoint 2013 Onpremise"网站页面"中有一些wiki页面。图书馆。我创建了一个专栏"优先级"在图书馆 。我想从客户端访问页面属性。我知道这可以从服务器端通过以下代码实现:
SPContext.Current.ListItem["FieldName"]
但我想从客户端访问页面属性,是否可能?
答案 0 :(得分:9)
由于SPContext.Current获取当前HTTP请求的上下文,SPContext.Current.ListItem
返回当前列表项,我假设您需要在JSOM中使用类似的功能。
在SharePoint中,结构_spPageContextInfo
在客户端的每个页面上都可用,可以在某种程度上视为与SPContext.Current类似。特别是,暴露以下属性以标识当前列表项:
pageListId
- 获取当前列表唯一ID pageItemId
- 获取当前的列表项ID 以下函数演示了如何检索当前的List Item:
function getCurrentListItem(success, error)
{
var context = SP.ClientContext.get_current();
var web = context.get_web();
var currentList = web.get_lists().getById(_spPageContextInfo.pageListId);
var currentListItem = currentList.getItemById(_spPageContextInfo.pageItemId);
context.load(currentListItem);
context.executeQueryAsync(
function(){
success(currentListItem);
},
error
);
}
用法
getCurrentListItem(
function(listItem) {
var priority = listItem.get_item('Priority');
console.log(priority);
},
function(sender,args){
console.log(args.get_message());
}
);