2013-02-21 64 views
2

嗨,这工作正常按钮点击;它循环视图中选定的项目,提醒&调用updateListItem功能如何使用javascript更新所选的SharePoint项目列表项目,

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但该字段值没有被设置为新的id的值。请有任何想法吗?

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

我对案件并不是非常熟悉,但我知道即使代码看起来确实存在这种麻烦,应该浏览代码的值可能会错误。换句话说,您使用的列表名称可能不是真实姓名,而是显示名称。您应该确保您使用的名称是列表和字段的真实架构名称,而不仅仅是显示名称。

我希望我能帮上忙。祝你好运!!!

0

嗯,我有同样的问题,这是因为页面刷新发生在异步事件完成之前,这意味着上下文丢失。因此,即使在致电executeQueryAsync之前,一切看起来都很完美,物品仍未保存。 如果您删除刷新,它应该工作。

相关问题