-1

我试图在我的 HTML 页面上隐藏一个表格。所以我使用 oTable.setVisible(false)。这很好用,即我的表格被隐藏了,但我得到了文本代替表格,如下图所示。有没有办法不显示它或显示它的任何原因?我粘贴在我的代码和图片下方以供参考。

查看.js

var oModel = new sap.ui.model.odata.ODataModel( "../TEST_ODATA.xsodata",true);
oTable.setModel(oModel);
oTable.bindRows("/sPath");
var oButton1 = new sap.ui.commons.Button({
                       text : "click",
                       style: sap.ui.commons.ButtonStyle.Accept,
                       press : function() {

                document.getElementById("table").innerHTML = oTable.setVisible(false);
                }}); 

索引.html

<body class="sapUiBody"> 
<div id="table" style="margin-bottom: 20px"></div> 
</body>

错误:

截屏

4

4 回答 4

2

这应该只是这样做(无需设置innerHTML):

press : function() {
     oTable.setVisible(false);
}
于 2014-02-23T14:55:31.980 回答
1

我不知道 sapui5 是什么或oTable来自哪里,但看起来你的问题在这里:

  document.getElementById("table").innerHTML = oTable.setVisible(false);

您将 #table 元素内的 HTML 设置为 setVisible 方法的返回值。

我想你想要一个(或两个):

document.getElementById("table").innerHTML = '';
oTable.setVisible(false);

如果要隐藏元素,建议将其设置为:

document.getElementById("table").className = 'hidden';

和:

.hidden { display: none; }

或者如果你想删除一个元素:

var table = document.getElementById("table");
table.parentNode.removeChild(table);
于 2014-02-23T14:39:25.793 回答
1

只需将您的表设置为 setVisible(false) 并使其无效,以便 ui5 重新呈现它。这应该足够了。

oTable.setVisible(false);
oTable.invalidate();

并删除您的:

document.getElementById("table").innerHTML = ...
于 2014-02-23T14:44:11.907 回答
0

用这个

document.getElementById("table").style.display = "none";

而不是这个:

document.getElementById("table").innerHTML = oTable.setVisible(false);
于 2014-02-23T14:35:57.160 回答