嗨,按钮点击可以正常工作;它在视图中循环选定的项目,提醒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());
}
答案 0 :(得分:1)
我对这个案例不是很熟悉,但我知道即使代码看似正常,当出现这种麻烦时,应该导航代码的值可能是错误的。换句话说,您使用的列表名称可能不是真实姓名,而是显示名称。您应该确保您使用的名称是列表和字段的真实架构名称,而不仅仅是显示名称。
我希望我能以某种方式提供帮助。 G o o d L u c k !!!
答案 1 :(得分:0)
您是否尝试刷新浏览器?
相同的代码对我有用,但我需要刷新浏览器才能查看项目的新值。
答案 2 :(得分:0)
我有同样的问题,这是因为页面刷新发生在异步事件完成之前,这意味着上下文丢失了。因此,即使在调用executeQueryAsync
之前一切看起来都很完美,也不会保存该项目。
如果删除刷新,它应该可以工作。