如何在SapUi5中创建动态DropDownBox?
问题描述:
我在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);
}
答
这是可以做到试过,但你需要的目录浏览。
创建
.htaccess
文件中,你需要阅读的目录,并在该文件中添加以下内容:Options +Indexes
执行下列规定:
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
}
});
我猜想只有JS和SAPUI5才是不可能的。出于安全原因,您无法使用JS从浏览器访问目录(您的JSON文件的存储位置)。您需要在服务器上通过某种API提供文件结构的脚本。 – Marc