2016-04-13 37 views
0

Merhaba, belirli bir alan içeren bir Diziyi yerleştirmeye çalışıyorum. Ama her zaman alırım: The property or field has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested. Sharepoint 2013'deyim ve dahili adları paylaşım noktasından kullanıyorum. Caml Query'mde bir sorun olduğunu varsayıyorum.Neden her zaman alıyorsunuz? Özellik veya alan başlatılmamış mı?

function retrieveListItems(siteUrl) { 

     var clientContext = new SP.ClientContext(siteUrl); 
     var oList = clientContext.get_web().get_lists().getByTitle('MatrixFiles'); 

     var camlQuery = new SP.CamlQuery(); 
     camlQuery.set_viewXml('<View><ViewFields><FieldRef Name="LinkFilename" /><FieldRef Name="WebCountry" /><FieldRef Name="WebDepartment" /><FieldRef Name="FileLeafRef" /></ViewFields><Query><OrderBy><FieldRef Name="LinkFilename" /></OrderBy></Query></View>'); 
     this.collListItem = oList.getItems(camlQuery); 

     clientContext.load(collListItem); 

     clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed)); 

    } 

Ve burada dizisi ile diğer kısmı: Burada

i kullanmak Kod olan

function onQuerySucceeded(sender, args) { 

    var listItemInfo = ''; 
    var array = []; 

    var listItemEnumerator = this.collListItem.getEnumerator(); 

    while (listItemEnumerator.moveNext()) { 
     var oListItem = listItemEnumerator.get_current(); 
     console.log(oListItem); 

     array.push(oListItem); 



    } 

    alert(oListItem.get_item('LinkFilename')); 


} 

garip bir şey dizisi SPListItems ile dolar olduğunu ama kullanmaya çalıştığınızda Bir uyarıda belirli bir alan hatası oluşur. Hiçbir ipucu neden ....

Zamanınız için herhangi bir yardım harika ve thx olacaktır. Bunun için SP Caml Query helper'u kullandım BTW .

cevap

1

Sp.js komut dosyası yüklenmediğinden bu hatanın oluştuğu düşünün.

Dene:

//Insert this right after your opening script tag 
    ExecuteOrDelayUntilScriptLoaded(retrieveListItems, "sp.js"); 

    //then your function as written above 
    function retrieveListItems(siteUrl) { etc...}; 

Ayrıca bu yanıtı faydalı olabilir: SharePoint 2013 add javascript after whole page load

İlgili konular