2011-11-29 95 views

回答

3

在SharePoint 2010中,可以使用三种不同类型的客户端对象模型扩展。它们是托管客户端对象模型,ECMAScript和silverlight扩展。

这个环节更贴近您的需求How to: Retrieve Lists Using JavaScriptHow do you get the current list item in JavaScript?

SP.ListOperation.Selection Methods

var value = SP.ListOperation.Selection.getSelectedItems(); 

检查以下详细信息的链接:
SharePoint 2010: Use ECMAScript to manipulate (Add/Delete/Update/Get) List Items
Accessing List Data using the JavaScript Client OM
Using the SP2010 Client Object Model to update a list item How to – SharePoint 2010 – JS client object model and UI advancements

+0

我收到错误“TypeError:SP.ListOperation is undefined”。你能提出任何解决这个问题的建议吗? –

+0

我试着把'ExecuteOrDelayUntilScriptLoaded'(ReadCustomvalue,“sp.js”)和SP.SOD.executeFunc('sp.js','SP.ClientContext',ReadCustomvalue'')放在一起。但他们都没有解决这个问题。 –

15

交互时,您可以使用JavaScript客户端对象模型。假设窗口的_spPageContextInfo对象设置与webServerRelativeUrlpageListIdpageItemId属性初始化:

var context = new SP.ClientContext(_spPageContextInfo.webServerRelativeUrl); 
var list = context.get_web().get_lists().getById(_spPageContextInfo.pageListId); 
var item = list.getItemById(_spPageContextInfo.pageItemId); 

然后,你可以加载你需要的字段:

context.load(item, "Title", "Location"); 
context.executeQueryAsync(Function.createDelegate(this, this.mySuccessFunction), Function.createDelegate(this, this.myErrorFunction)); 

item现将字段填入你要求,你可以像这样进行检索:

var itemTitle = item.get_item("Title"); 
var itemLocation = item.get_item("Location"); 

注意您应该使用显示内容,而不是内部要加载的字段名称。

+1

我想从_spPageContextInfo全局读取pageItemId,但它没有该属性。我在展示形式。帮帮我? :\ – Renan

+2

Nevermind ...我刚刚检查出来,该属性仅当列表是文档库时才存在。无论如何,好的答案。 – Renan

+0

在SP 2013中不起作用 – kevin

1
if _spPageContextInfo.pageItemId is undefined. 
Use this function 
function getUrlVars() { 
var vars = [], 
    hash; 
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
for (var i = 0; i < hashes.length; i++) { 
    hash = hashes[i].split('='); 
    vars.push(hash[0]); 
    vars[hash[0]] = hash[1]; 
} 
return vars; 
} 
//THEN DO THIS 
var id = getUrlVars()["ID"]; 
//THEN DO YOUR MAGIC 
var context = new SP.ClientContext(_spPageContextInfo.webServerRelativeUrl); 
var list = context.get_web().get_lists().getById(_spPageContextInfo.pageListId); 
var item = list.getItemById(id); 
相关问题