表setVisible错误

时间:2014-02-23 14:32:05

标签: javascript html html5 dom sapui5

我正在尝试在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>

错误:

screenshot

4 个答案:

答案 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);