2016-11-08 11 views
0

JSのsharepoint Listのタイトルを取得したいと思います。Sharepointを取得するjavascriptのリスト

My機能JS:

function retrieveAllListsAllFields() { 
     var ctx = SP.ClientContext.get_current(); 
     var web = ctx.get_web(); 
     ctx.load(web, "Title"); 

    ctx.executeQueryAsync(
    Function.createDelegate(this, function(){ 
     var listTitle = web.get_title() + " Documents"; 
    }), 
    Function.createDelegate(this, this.onQueryFailed) 
    ); 

は、私はリストを取得するが、私はコンボボックスで私のライブラリのドキュメントのリストを取得するための別の関数で使用する、このリストをしたいと思います:

function initComboBox(fileslistBox, fileslistBoxDest, selectLibraryFileFieldResult, entityComboBox, yearComboBox, typeComboBox, library, entityValue, currentSiteUrl) { 
    function retrieveAllListsAllFields() { 
     var ctx = SP.ClientContext.get_current(); 
     var web = ctx.get_web(); 
     ctx.load(web, "Title"); 

     ctx.executeQueryAsync(
     Function.createDelegate(this, function(){ 
      var listTitle = web.get_title() + " Documents"; 
     }), 
     Function.createDelegate(this, this.onQueryFailed) 
     ); 

    var listBox; 
    var i = 0; 
    var reggie = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/; 
    var entityComboBoxArray = new Array(); 
    var yearComboBoxArray = new Array(); 
    var typeComboBoxArray = new Array(); 

    addItemToArray(entityComboBoxArray, "", "", i); 
    addItemToArray(yearComboBoxArray, "", "", i); 
    addItemToArray(typeComboBoxArray, "", "", i); 

    //init all combox 
    $().SPServices({ 
     operation: "GetListItems", 
     webURL: currentSiteUrl, 
     async: true, 
     listName: listTitle,   
     CAMLViewFields: "<ViewFields><FieldRef Name='ID' /><FieldRef Name='FileLeafRef' /><FieldRef Name='File_x0020_Type' /><FieldRef Name='Title' /><FieldRef Name='Entity' /><FieldRef Name='Year_Document' /><FieldRef Name='Library' /></ViewFields>", 
     CAMLQuery: "<Query><OrderBy><FieldRef Name='Title' /></OrderBy><Where><Eq><FieldRef Name='Library' /><Value Type='Choice'>" + library + " </Value></Eq></Where></Query>", 
     completefunc: function (xData, Status) { 
      $(xData.responseXML).SPFilterNode("z:row").each(function() { 
       i++; 
       //Add value to combox Array 
       alert(listTitle); 
       var tmpEntity = $(this).attr("ows_Entity"); 
       if (tmpEntity != null) 
        addItemToArray(entityComboBoxArray, $(this).attr("ows_Entity"), (tmpEntity).split("#")[1], i); 

       var tmpYear = $(this).attr("ows_Year_Document"); 
       if (tmpYear != null) 
        addItemToArray(yearComboBoxArray, tmpYear, tmpYear, i); 

       var tmpType = $(this).attr("ows_File_x0020_Type"); 
       if (tmpType != null) 
        addItemToArray(typeComboBoxArray, tmpType, tmpType, i); 

       //if option already in Result Select, we move it to the destination RadListBox 
       if (isOptionContainInSelect(selectLibraryFileFieldResult, $(this).attr("ows_Title")) == true) 
        listBox = fileslistBoxDest; 
       else listBox = fileslistBox; 
       addNewFilesItem($(this).attr("ows_ID"), $(this).attr("ows_FileLeafRef"), $(this).attr("ows_Title"), $(this).attr("ows_Entity"), $(this).attr("ows_Year_Document"), $(this).attr("ows_File_x0020_Type"), listBox); 
      }); 


      //Add sorted array value to combobox 
      addArrayItemsToComboBox(entityComboBoxArray.sort(), entityComboBox); 
      addArrayItemsToComboBox(yearComboBoxArray.sort(), yearComboBox); 
      addArrayItemsToComboBox(typeComboBoxArray.sort(), typeComboBox); 
      selectValueForComboBox(entityComboBox, entityValue); 
      filterList(fileslistBox, entityComboBox, yearComboBox, typeComboBox); 
     } 
    }); 
    } 
} 

しかし、私はライブラリ内のドキュメントを取得できません。 ドキュメントはコンボボックスに読み込まれません。

この「listName:listTitle」は使用できません。クエリが成功したときに実行するコールバック関数、およびクエリがエラーに遭遇した場合に実行するコールバック関数:

敬具、

答えて

0

executeQueryAsyncは、2つのパラメータがあります。

クエリの実行に依存するコードは、成功コールバック関数(executeQueryAsyncの最初のパラメータ)内に配置する必要があります。

ctx.executeQueryAsync(
Function.createDelegate(this, 
    function(){ 
     var listTitle = web.get_title() + " Documents"; 

     var listBox; 
     var i = 0; 
     var reggie // ... 
     // rest of your code goes here... 

    }),Function.createDelegate(this, this.onQueryFailed) 
); 
+0

完璧!ありがとう!! – user2814368

関連する問題