我正在尝试在HTML页面上隐藏表格。所以我使用oTable.setVisible(false)。这工作正常,即我的表被隐藏但我得到的文本代替表格如下图所示。有没有办法不显示它或为何显示的原因? 我粘贴在我的代码下面以及图片以供参考。
View.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);
}});
的index.html
<body class="sapUiBody">
<div id="table" style="margin-bottom: 20px"></div>
</body>
错误:
答案 0 :(得分:2)
这应该只是这样做(不需要设置innerHTML):
press : function() {
oTable.setVisible(false);
}
答案 1 :(得分: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);
答案 2 :(得分:1)
只需将您的表设置为setVisible(false)并使其无效,以便ui5将重新渲染它。 这应该足够了。
oTable.setVisible(false);
oTable.invalidate();
并删除你的:
document.getElementById("table").innerHTML = ...
答案 3 :(得分:0)
使用此
document.getElementById("table").style.display = "none";
而不是:
document.getElementById("table").innerHTML = oTable.setVisible(false);