2013-02-21 65 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之前,一切看起來都很完美,物品仍未保存。 如果您刪除刷新,它應該工作。

相關問題