It doesn't help if you hide the content of the table cells. A table row is still visible even if all cell contents are hidden. That is different to Notes client table. In browser you have to hide the whole table row <tr>
... </tr>
.
Server side table row show/hide
You can put your hide code into <tr>
tag:
<xp:table>
<xp:tr rendered="#{....}">
Then the whole table row will be invisible if code returns false
.
Client side table row show/hide
For client side show/hide you would give the <tr>
tag an id:
<xp:table>
<xp:tr id="row1">
Then you can address the table row with the id and hide the row with e.g.
dojo.style(dojo.byId("#{id:row1}"), "display", "none")
and show it again with
dojo.style(dojo.byId("#{id:row1}"), "display", "")
Client side table row show/hide for Extension Library Form Table control
Unfortunately, we can't use the id of xe:formRow
because it gets lost during rendering. That means, the id is not available for client side settings.
But we can specify a styleClass
.
<xe:formTable
id="formTable1">
<xe:formRow
id="formRow1"
styleClass="classRow1">
This class name "survives" the rendering and we can use it to get all ids which have this class and hide the table row
dojo.query(".classRow1").forEach(function(node, index, nodelist){
dojo.style(node, "display", "none")
});
and show it again
dojo.query(".classRow1").forEach(function(node, index, nodelist){
dojo.style(node, "display", "")
});