【问题标题】:Read Sharepoint List Value using javascript and set to variable使用 javascript 读取 Sharepoint 列表值并设置为变量
【发布时间】:2014-07-20 15:45:08
【问题描述】:

我觉得我有一个相当简单的问题,但网上的每个解决方案都非常复杂。我在 SharePoint Designer 2010 中,我不是程序员,但我能过得去。我有一个带有合同编号的 SP 列表,当您单击合同编号时,它会将您带到该项目。我只想要 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 具有参数,则代码有效,但当我在上面设置值时无效。如果有人有一个非常简单的方法来完成这个,请告诉我!

【问题讨论】:

  • 也许答案很复杂......尝试回到那些解决方案,看看它们是否适合你。如果他们这样做了,那就去阅读,看看你是否能弄清楚。如果有什么真的让你陷入困境,当且仅当你在其他任何地方都找不到答案并且它符合网站的问题标准时,才在这里询问它。现在,您只是在请求代码,这通常不会很好地工作。尝试发布您尝试过的内容以及为什么它没有作为您问题的一部分,您得到的答案会更好(并且更有可能发生)

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


【解决方案1】:

您缺少SP.ClientContext.executeQueryAsync method,它在服务器上异步执行当前挂起的请求

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

SP.ClientContext.executeQueryAsync(succeededCallback, failedCallback)

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

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

  • 使用嵌套回调
  • 使用承诺模式

请参阅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

【讨论】:

  • @Vadim : 你对在成功函数中调用 window.open(result) 有什么想法吗
猜你喜欢
  • 2018-10-10
  • 1970-01-01
  • 2011-12-14
  • 2012-01-09
  • 2012-05-04
  • 2019-06-02
  • 1970-01-01
  • 2015-04-30
  • 1970-01-01
相关资源
最近更新 更多