sap.m.Table 不可见的行不显示 "No data"

sap.m.Table with invisible rows does not show "No data"

我有一个 sap.m.Table 映射对象数组(行) 我没有在 sap.m.ColumnListItem.

中按 visible 属性 显示某些行

一切正常,但是当 table 不包含任何行时,结果如下:

文本 "No data" 没有显示,我看到一个简单的空白 table :(

这是我想要达到的结果: 我该怎么做?

它应该默认显示文本。两个猜测:

您的数据可能包含一个(甚至多个)空条目,因此 ColumnListItem 得到呈现但没有可见内容。

您错误配置了属于 sap.m.Table 的其中一个属性。 sap.m.ListBase:

  • noDataText : string(这个不用设置,有默认的)
  • showNoData:布尔值(默认值:true)

GL 克里斯

您描述的情况是您已经绑定了 Table 的项目聚合,但只是用可见的 属性 抑制了行显示。 Table 仍然有项目绑定,因此不会显示 "no data" 文本,因为有数据。这是对的。此处的代码段是您描述的您正在做的事情。

var oTable = sap.m.Table("salesarea", {
  columns : [
    new sap.m.Column({
      header : new sap.m.Text({text: "Place"})
    })
  ],
  items: {
    path: "/places",
    template: new sap.m.ColumnListItem({
      visible : false,
      cells : [
        new sap.m.Text({text: "{name}"})
      ]
    })
  }
});
oTable
.setModel(new sap.ui.model.json.JSONModel({
  places: [
    { name: "Manchester" },
    { name: "Liverpool" },
    { name: "Leeds" },
    { name: "Sheffield" }
  ]
}))
.placeAt("content");
jQuery.sap.require("sap.m.MessageToast");
alert("Table has " + oTable.getItems().length + " items");
<script src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js" id="sap-ui-bootstrap" data-sap-ui-libs="sap.m" data-sap-ui-theme="sap_bluecrystal"></script>
<div id="content"></div>

答案是使用过滤器而不是通过格式化程序隐藏行。