【问题标题】:Upload TXT file and display data in SAPUI5 responsive table上传 TXT 文件并在 SAPUI5 响应表中显示数据
【发布时间】:2016-02-25 07:48:36
【问题描述】:

我想在 sapui5 中创建一个 sap.m.Table,其中行中的数据将在上传包含一些详细信息的文本文件 (.txt) 时填充

例如

Test.txt

1[tab]ABC Q

2[tab]PQR

3[tab]XYZ

在上面的text.txt中,

1,2,3... 是客户编号,ABC,PQR... 是客户详细信息。我编写了在上传时从 test.txt 文件中读取数据的逻辑(参考下面的 jsbin 链接示例)并将数据分配到多维数组中,如下图所示

http://jsbin.com/fenexuqule/edit?html,output

multidimensional array value on inspect

当我上传文本文件时,我想动态创建一个 sap.m.table,其中将有 2 列客户编号和客户详细信息,数据应填充到各自的行中。

参考下表结构(预期表)

----------------------------------
| customer no | customer details |
----------------------------------
|         1   | ABC Q            |
|         2   | PQR              |
|         3   | XYZ              |

提前致谢。

【问题讨论】:

    标签: sapui5


    【解决方案1】:

    我会怎么做...

    将您的 CSV 转换为 JSON 并创建模型对象

    var aCSV = strCSV.split('\n'), row = {};
    
    for (var i = 0; i < aCSV.length; ++i) {
         row = aCSV[i].split(';');
         aCSV[i] = { 
             "cusno": row[0], 
             "cusdetail" : row[1]
         }
    }
    
    var oModel = new sap.ui.model.json.JSONModel(aCSV);
    

    创建您的表格

    var oTable = new sap.m.Table({
        columns: [
            new sap.m.Column({
                header: new sap.m.Text({text: "Custom No"})
            }),
            new sap.m.Column({
                header: new sap.m.Text({text: "Customer Details"})
            })
        ]
    });
    
    oTable.placeAt("content");
    

    将数据绑定到您的表格

    oTable.setModel(oModel);
    
    oTable.bindAggregation("items", {
        path: "/", //json is an array of rows
        factory: function(sId, oContext) { //this function is applied to each row
            var cusno = new sap.m.Text({text: oContext.getProperty("cusno")});
            var cusdet = new sap.m.Text({text: oContext.getProperty("cusdetail")});
    
            return new sap.m.ColumnListItem({
                cells:[cusno, cusdet]
            });
        }
    });
    

    完整示例:http://jsbin.com/tobifiqoto/2/edit?html,output

    【讨论】:

    • 感谢您的回复。它解决了我的问题,我想给你加 10 票,但由于我是堆栈溢出的新手,而且我的声誉较低。
    • @Prashob 既然你是新人,我希望你不要只是复制粘贴我的代码,还要试着理解我在那里做了什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多