2014-02-23 28 views
0

我想隱藏我的HTML頁面上的表。所以我使用oTable.setVisible(false)。這工作正常,即我的表是隱藏的,但我得到的文本代替表格,如下圖所示。有什麼方法可以不顯示,或者有什麼原因顯示? 我粘貼在我的代碼下方,也可以參考圖片。表setVisible錯誤

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

回答

2

這應該只是做它(不必設定的innerHTML):

press : function() { 
    oTable.setVisible(false); 
} 
+0

這是否也意味着vizCharts?例如:如果我需要用新的餅圖替換餅圖(在點擊按鈕時設置了新數據),那麼oPiechart.setVisible(false)也可以工作嗎? –

+0

對不起,我用餅圖測試了一下,但瀏覽器拋出一個錯誤,提示'未命中TypeError:Object [object Object]沒有方法'setVisible'。我試過類似'oPiechart.setVisible(false);'。有任何想法嗎? –

+1

嗨Sangamesh,你是正確的; VizCharts沒有setVisible屬性(請參閱https://sapui5.hana.ondemand.com/sdk/#docs/api/symbols/sap.viz.ui5.Pie.html以獲取API參考)。但是,您可以將VizChart封裝在其中一個佈局容器中,例如MatrixLayout,它具有可見屬性 – Qualiture

0

使用本

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

,而不是這樣的:

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

解釋爲什麼這會通過工作[編輯]荷蘭國際集團的答案。 –

1

我不知道是什麼sapui5或者oTable從何而來,但它看起來像你的問題是在這裏:

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

你設置裏面的HTML將#table元素設置爲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); 
1

只是將您的表設置爲setVisible(false)並使其無效,以便ui5將其重新渲染。 這應該就夠了。

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

,並刪除您:

document.getElementById("table").innerHTML = ...