2016-03-07 62 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 
    } 
});