2016-04-05 3 views
0

Ich versuche, eine Hilfstabelle mit Hauptgesichtern zu zeichnen, und ich habe einige Probleme mit <p:dataTable> konfrontiert.Primedafaces dataTable Zellen neben Kopf bearbeiten

Das Szenario

Die Tabelle wie folgt sein sollte:

----------------------------------------------------------------------------------------- 
|       |     Date and assistance (1)    |  | 
|   Name (1)  |-------------------------------------------------------| % | 
|       |(4)| | | | | | | | | | | | | |  | 
----------------------------------------------------------------------------------------- 
|Lastname, firstname (2) |(3)| | | | | | | | | | | | | | (5) | 
----------------------------------------------------------------------------------------- 
|...[more rows]...                  | 
----------------------------------------------------------------------------------------- 

In (1) ich die Titel (nicht editierbar natürlich). In (2) habe ich die Personendaten, die aus der DB geholt werden und auch nicht editierbar sind.

In (3) Ich habe eine bearbeitbare Zelle mit einer Dropdown-Liste für die möglichen Werte [P, A, L] (Gegenwart, Abwesend, Spät).

In (4) muss ich das Datum der Unterstützung (nicht unbedingt das aktuelle Datum) einfügen.

Schließlich, in (5) habe ich den aktuellen Unterstützungsprozentsatz, der ein berechnetes Feld ist.

Das Problem

Ich bin in der Lage, nicht (4) editierbar zu machen, z.B. mit einem <p:inputMask pattern="dd/MM"> Tag

fehlgeschlagen Versuch

ich mit der Gruppierung Eigenschaft versucht, von den <p:dataTable>, so etwas wie:

<!-- Assist class has the properties char value, Person person and Date date --> 
<p:dataTable var="assist" value="#{assistBean.lstAssist}" 
      editable="true" editMode="cell"> 
    <p:columnGroup type="header"> 
    <!-- The "headers" properly said --> 
    <p:row> 
     <p:column rowspan="2" headerText="Name"/> 
     <p:column colspan="#{someBean.colAmount}" rowspan="1" headerText="Date and assistance"/> 
    </p:row> 

    <!-- The editable dates --> 
    <p:row> 
     <p:column> 
     <p:cellEditor> 
      <f:facet name="output"> 
      <h:outputText value="#{assist.date}"> 
       <f:convertDateTime pattern="dd/MM"/> 
      </h:outputText> 
      </f:facet> 
      <f:facet name="input"> 
      <p:inputMask value="#{assist.date}" style="width:96%" mask="99/99"/> 
      </f:facet> 
     </p:cellEditor> 
     </p:column> 
    </p:row> 
    </p:columnGroup> 

    <p:column>... 
    ... The rest of the table 
    </p:column> 
</p:dataTable> 

Das funktioniert nicht, weil jedes Feld in den <p:columnGroup type="header"> nicht das nicht macht <input>.

Ich habe auch einige andere Kombinationen ausprobiert, aber ich kann die Header nicht mit den editierbaren Zellen mischen.

Jede Hilfe oder Anleitung wird geschätzt, ich bin auch offen für andere Optionen. Vielen Dank im Voraus

+0

Wenn ich Ihre Frage richtig verstehe, können Sie nicht tun, was Sie wollen. Es tut uns leid. – Kukeltje

+0

¿gibt es eine andere Option für diese Art von Funktionalität? Vielleicht eine andere Komponente oder Mischung von Komponenten, ich bin ganz Ohr. Vielen Dank –

Antwort

0

Ich weiß nicht, ob Sie noch eine Lösung benötigen, aber Sie können tun, was Sie benötigen, dies auf die editierbare Kopfzeile setzen (natürlich p: inplace ist optional können Sie es entfernen, f: Facette ist was du brauche):

<p:column> 
    <f:facet name="header"> 
     <p:inplace> 
      <p:inputText value="#{bean.yourvalue}"/> 
     </p:inplace> 
    </f:facet> 
</p:column> 
Verwandte Themen