2016-03-07 91 views
-4

我在ProjectExplorer中有一個測試文件夾。在那個文件夾中我有多個JSON文件。我想創建一個DropDownBox,它將包含該文件夾中包含的所有文件名。另外,當我點擊任何文件時,我想在TextArea中顯示該文件。我想在SapUi5中做到這一點。請推薦如何在SapUi5中創建動態DropDownBox?

我至今

var oText = new sap.ui.commons.Label({ 
       text : "Saved Files" 
      }); 

      var SavedFiles = new sap.ui.commons.DropdownBox(); 
      var oItem = new sap.ui.core.ListItem(); 


    #!/usr/bin/perl 


    $basedir = "data"; //folder location 

    @files = ('*.json'); 

    chdir($basedir); 
    foreach $file (@files) 
    { 
     $ls = `ls $file`; 
     @ls = split(/\s+/,$ls); 
     foreach $temp_file (@ls) 
     { 
      if (-d $file) 
      { 
      $filename = "$file$temp_file"; 
      if (-T $filename) 
      { 
       push(@FILES,$filename); 
      } 
      } 
      elsif (-T $temp_file) 
      { 
      push(@FILES,$temp_file); 
      } 
     } 
    } 


    foreach $FILE (@FILES) 
    { 
      oItem.setText("filename"); 
      SavedFiles.addItem(oItem); 
    } 
+0

我猜想只有JS和SAPUI5纔是不可能的。出於安全原因,您無法使用JS從瀏覽器訪問目錄(您的JSON文件的存儲位置)。您需要在服務器上通過某種API提供文件結構的腳本。 – Marc

回答

0

這是可以做到試過,但你需要的目錄瀏覽。

  1. 創建.htaccess文件中,你需要閱讀的目錄,並在該文件中添加以下內容: Options +Indexes

  2. 執行下列規定:

var aFiles = []; 
$.ajax({ 
    url : "http://localhost:8010/", // or whatever URL you use 
    success: function (data) { 
     $(data).find("a").attr("href", function (i, val) { 
      if(val.match(/\.(json)$/)) { 
       aFiles.push(val); 
      } 
     }); 
     console.log(aFiles); //aFiles holds an array with all the *.json files 
    } 
});