2

嗨,这在单击按钮时效果很好;它循环视图中的选定项目,提醒 id 并调用 updateListItem 函数

function ViewSelectedItems(){
var selectedItems = SP.ListOperation.Selection.getSelectedItems();for (var i = 0; i < selectedItems.length; i++) { alert("Item with Id = " + selectedItems[i].id+ " is selected");  updateListItem(selectedItems[i].id)}
                 window.location.href = window.location.href;
}

updateListItem 报告 onQuerySucceeded 但字段值未设置为新值。请问有什么想法吗?

    function updateListItem(passedid) {

 var siteUrl = '/supportdepts/hr/';

 var newval = 999;

    var clientContext = new SP.ClientContext(siteUrl);
    var oList = clientContext.get_web().get_lists().getByTitle('Staffing Control Panel Request');
    this.oListItem = oList.getItemById(passedid);
    oListItem.set_item("RefNumber", newval);
    oListItem.update();
    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), 


    Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {
    alert('Item updated!');
}

function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
4

3 回答 3

1

我对这个案例不是很熟悉,但我知道当这种问题发生时,即使代码看起来没问题,应该导航代码的值可能是错误的。换句话说,您使用的列表名称可能不是真实名称,而是显示名称。您应该确保您使用的名称是列表和字段的真实模式名称,而不仅仅是显示名称。

我希望我能以某种方式提供帮助。祝你好运!!!

于 2015-07-20T10:15:34.617 回答
0

您是否尝试过刷新浏览器?

相同的代码对我有用,但我需要刷新浏览器才能查看项目的新值。

于 2014-01-21T11:34:45.843 回答
0

好吧,我遇到了同样的问题,这是因为页面刷新发生在异步事件完成之前,这意味着上下文丢失了。这样该项目就不会被保存,即使在调用之前一切看起来都很完美executeQueryAsync。如果您删除刷新,它应该可以工作。

于 2015-12-04T14:09:06.650 回答