2013-02-21 2 views
2

Привет, это отлично работает при нажатии кнопки; она петли выбранных элементов в представлении, оповещает идентификатор & вызывает функцию updateListItemКак обновить выбранные элементы списка sharepoint с помощью javascript,

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

Я не очень хорошо разбираюсь в этом случае, но знаю, что, когда возникает такая проблема, даже если код кажется ОК, значения, которые должны перемещаться по коду, вероятно, ошибочны. Другими словами, возможно, имя списка, которое вы используете, - это не настоящее имя, а отображаемое имя. Вы должны убедиться, что имена, которые вы используете, являются именами настоящих схем списков и полей, а не только отображаемыми.

Надеюсь, я действительно помог. Удачи!!!

0

У меня была такая же проблема, и это связано с тем, что обновление страницы происходит до того, как будет выполнено событие async, что означает, что контекст потерян. Чтобы элемент не был сохранен, даже если все кажется идеальным до вызова executeQueryAsync. Если вы удалите обновление, оно должно работать.

Смежные вопросы