如何使用javascript更新选定的sharepoint列表项,

时间:2013-02-21 12:44:52

标签: javascript sharepoint updates

嗨,按钮点击可以正常工作;它在视图中循环选定的项目,提醒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());
}

3 个答案:

答案 0 :(得分:1)

我对这个案例不是很熟悉,但我知道即使代码看似正常,当出现这种麻烦时,应该导航代码的值可能是错误的。换句话说,您使用的列表名称可能不是真实姓名,而是显示名称。您应该确保您使用的名称是列表和字段的真实架构名称,而不仅仅是显示名称。

我希望我能以某种方式提供帮助。 G o o d L u c k !!!

答案 1 :(得分:0)

您是否尝试刷新浏览器?

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

答案 2 :(得分:0)

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