2013-02-21 3 views
2

안녕하세요. 그것은보기에 선택한 항목을 루프 updateListItem이 onQuerySucceeded하지만 필드의 값을 새로운 값으로 설정되지 않은보고하는 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; 
} 

를 호출 & 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을 호출하십시오. 새로 고침을 제거하면 제대로 작동합니다.

관련 문제