Panel maximieren#

    toggleFull: function(panel) {
      if (panel.className == 'full') {
        panel.className = panel.fullSizeOrig.className;
        window.scrollTo(panel.fullSizeOrig.scrollX, panel.fullSizeOrig.scrollY);
        document.body.style.overflow = 'auto';
        panel.fullSizeOrig = null;
      } else {
        panel.fullSizeOrig = {
          className: panel.className,
          scrollX: window.scrollX,
          scrollY: window.scrollY
        };
        panel.className = 'full';
        document.body.style.overflow = 'hidden';
        window.scrollTo(0, 0);
      }
    }

Sublisten#

    <rich:dataTable value="#{outers}" var="outer">
      <f:facet name="header">
        <rich:columnGroup>
          <rich:column>
            <h:outputText value="1"/>
          </rich:column>
          <rich:column>
            <h:outputText value="2"/>
          </rich:column>
          <rich:column>
            <h:outputText value="3"/>
          </rich:column>
        </rich:columnGroup>
      </f:facet>

      <rich:column rowspan="#{outer.inners.size + 1}">
        <h:outputText value="1 (outer)"/>
      </rich:column>
      <rich:column colspan="2" style="padding: 0; border: 0;"/>

      <rich:subTable value="#{outer.inners}" var="inner">
        <rich:column>
            <h:outputText value="2 (inner)"/>
        </rich:column>
        <rich:column>
            <h:outputText value="3 (inner)"/>
        </rich:column>
      </rich:subTable>
    </rich:dataTable>