javascript - 使用 javascript 读取 Sharepoint 列表值并设置为变量

标签 javascript sharepoint-2010 sharepoint-designer sharepoint-list

我觉得我的问题相当简单,但网上的每个解决方案都非常复杂。我在 SharePoint designer 2010 中,我不是程序员,但我可以通过。我有一个包含契约(Contract)编号的 SP 列表,当您单击契约(Contract)编号时,它会将您带到该项目。我只需要 JavaScript 代码从列表中读取值(通过 ID 或其他方式)并将其存储在变量中。

例如:

var siteUrl = 'https://...';
var itemID = 22;
var TargetListItem;
Function onLoad(){
var context = new SP.ClientContent(siteUrl);
var web = context.get_web().get_lists().getByTitle('Data Call');
var list = web.getItemById(itemID);
context.load(list, 'Contract Number');

var value = list.get_item('Contract Number');

var url = "/sites/... " + value + "...";
return url
}

如果我对值进行硬编码以便返回的 URL 具有参数,那么代码可以工作,但当我在上面设置值时则不行。如果有人有一个非常简单的方法来完成这个,请告诉我!

最佳答案

你错过了SP.ClientContext.executeQueryAsync method 在服务器上异步执行当前挂起的请求

SP.ClientContext.executeQueryAsync method具有以下签名:

SP.ClientContext.executeQueryAsync(succeededCallback, failedCallback)

因为它是async 方法,您不能从您的方法返回,但必须声明包含返回结果的succeededCallback 函数。

使用 JSOM 等异步 API 时,通常使用以下模式:

  • 使用嵌套回调
  • 使用 promise 模式

请引用Asynchronous programming in apps for Office了解 SharePoint 异步编程的文章。

下面的示例演示了如何使用回调方法获取列表项:

function getItem(listTitle,itemId,success,error){  
   var context = SP.ClientContext.get_current();
   var web = context.get_web();
   var list = web.get_lists().getByTitle(listTitle);
   var listItem = list.getItemById(itemId);
   context.load(listItem);

   context.executeQueryAsync(
   function() {
        success(listItem);
   },
   error
  );
}

例子

getItem('Data Call', 22,
  function(item){
       var result = item.get_item('Contract Number'); 
  },
  function(sender,args){
       console.log(args.get_message());
  }
);

引用资料

How to: Create, Update, and Delete List Items Using JavaScript

Asynchronous programming in apps for Office

关于javascript - 使用 javascript 读取 Sharepoint 列表值并设置为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23962098/

相关文章:

javascript - 如何使用JavaScript更改YouTube播放器播放头的颜色?

javascript - 在文本框中显示变量的值

c# - 如何访问 SharePoint 映射文件夹下的 XML 文件以创建 Xml 阅读器?

MOSS 2010 开发者工作站

发布后,SharePoint Designer工作流不会更改

javascript - 解析函数是否传递给 Promise 执行器异步?

javascript - 如何修复此代码?单击按钮将获得 1 分,另一个按钮将获得 1 分

visual-studio-2010 - 如何使用命令行构建 SharePoint 2010 包?

sharepoint - 谁是 SharePoint 工作流发起人?

javascript - 如何获取服务器的当前日期时间