我正在尝试基于“标题”(不是ID)更新我的SharePoint列表项。我为此目的使用Caml Query。下面是代码,它不起作用。请帮忙。
function updateTowerStatus(title, tower, status, comments)
{
var targetSiteUrl = "https://office2.bt.com/sites/GBA-"+tower;
var targetProductListName = tower+"Products";
ClientContext = new SP.ClientContext(targetSiteUrl);
var oList = ClientContext.get_web().get_lists().getByTitle(targetProductListName);
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query><Where><Eq><FieldRef Name="Title"/><Value Type="Text">'+title+'</Value></Eq></Where></Query></View>');
this.collListItem = oList.getItems(camlQuery);
ClientContext.load(oList);
ClientContext.load(collListItem);
ClientContext.executeQueryAsync(onQuerySucceeded, onQueryFailed);
}
function onQuerySucceeded() {
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext())
{
var item = listItemEnumerator.get_current();
item.set_item(tower+'ApprovalStatusOpenreach', status);
item.set_item(tower+'CommentsOpenreach', comments);
item.update();
ClientContext.load(item);
ClientContext.executeQueryAsync(Function.createDelegate(this, this.onUpdateSucceeded), Function.createDelegate(this, this.onQueryFailed));
}
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
也欢迎其他任何替代解决方案来完成这项工作。 场景是,当其他列表中具有相同标题的项目被批准/拒绝时,我需要更新一个列表的状态。我可以保存ID并执行此操作。但是如何存储正在创建的商品的ID?
答案 0 :(得分:0)
变量塔在onQuerySucceeded()方法中不可访问。它是updateTowerStatus()的一部分