2010-07-27 15 views

Respuesta

37

Esa respuesta vinculada honestamente no tiene sentido para mí. El <h:column> como está en la implementación JSF predeterminada does not admite esos atributos en absoluto. Está más allá de mí por qué obtuvo 6 votos y está marcado como aceptado. Será ignorancia o coincidencia (tal vez tanto el que pregunta como la respuesta están usando una implementación JSF de la que no tengo conocimiento que tenga un procesador para <h:column> que convierte automágicamente todos los atributos desconocidos en atributos HTML reales, pero al menos, el estándar JSF RI/Mojarra no hace eso, MyFaces tal vez?).

Dicho esto, para diseñar las columnas por separado, debe hacer uso del atributo columnClasses del <h:dataTable>. Acepta una cadena separada por comas de nombres de clase CSS que se aplicarán posteriormente en los elemenes <td> generados por <h:column>.

<h:dataTable columnClasses="column1,column2,column3"> 
    <h:column>...</h:column> 
    <h:column>...</h:column> 
    <h:column>...</h:column> 
</h:dataTable> 

Esto va a terminar como algo parecido a:

<table> 
    <tbody> 
     <tr> 
      <td class="column1">...</td> 
      <td class="column2">...</td> 
      <td class="column3">...</td> 
     </tr> 
    </tbody> 
</table> 

para especificar el ancho, solo se aplica CSS en consecuencia.

.column1 { width: 200px; } 
.column2 { width: 100px; } 
.column3 { width: 50px; } 
+0

¿Qué sucede si tiene un número de ? El orden se mezclará. –

+2

@Ramsus: sí, de hecho, eso es por diseño. Puede rellenarlo dinámicamente en el bean en su lugar y hacer referencia a él como lo hace 'columnClasses =" # {bean.columnClasses} "'. – BalusC

+2

Esa fue la solución que pensé también después de pensar en abit :). –

Cuestiones relacionadas