dadaTable, JSF

Pessoal gostaria de saber como faço para imprimir os objetos de um data table em uma mesma linha??

pois tenho na verdade um dataTable dentro do outro e quero listar as imagens(dataTable Interno) na horizontal uma do lado da outro so que está aparecendo uma embaixo da outra…???

codigo:

<h:dataTable
id=“data” var=“element1"
value=”#{infoCulturalAcao.dataModel.value}“
rows=”#{infoCulturalAcao.dataModel.rows}“
sortColumn=”#{infoCulturalAcao.dataModel.sortColumn}“
sortAscending=”#{infoCulturalAcao.dataModel.sortAscending}“
preserveSort=“true” preserveDataModel=“true"
style=“width:100%; border:1px; cellpadding:3px; cellspacing:0px; bgcolor:#FFFFFF;“
rowClasses=“texto” headerClass=”” columnClasses=””>
<h:column>











<h:commandLink action="#{infoCulturalAcao.consultar}" class=“link_marrom”>
<h:outputText value="#{element1.nomePT}"/>
<f:param name=“codigo” value="#{element1.codigo}"/>
</h:commandLink>


<h:outputText styleClass=“texto_menor_01” style=“text-indent=15"
value=”#{element1.descricao_PT}">
</h:outputText>
[color=red]<h:dataTable value="#{element1.dataModelInterno}"
var=“element2” width=“480” cellspacing=“10”>
<h:column>



</h:column>
</h:dataTable>[/color]

</h:column>
</h:dataTable>

se alguém poder me ajudar agradeço pela atençõa!

Obrigado!

tu tá usando jsf ri ou alguma impl tipo myfaces, adf ou icefaces?

Sun JSF RI

olha, a única forma eu acho que tem (utilizando JSF RI) é fazendo um workaround (A.K.A. gambi patterns) da vida ae :stuck_out_tongue:

pode ser?

a única solução que eu acho possível é essa:

passo 1: criar um método no teu backing bean pra criar os elementos

public PanelGrid getPainelLateral() {
  //pegar o Application do FacesContext
  Application app = FacesContext.getCurrentInstance().getApplication();
  // primeiro criar o componente do painel
  HtmlPanelGrid resultado = (HtmlPanelGrid) app.createComponent( HtmlPanelGrid.COMPONENT_TYPE );
  resultado.setColumns( dataModelInterno.size() ); //supondo que o dataModeInterno seja uma list
  
  // agora criar um monte de figurinhas Pressupõe-se que o T seja do tipo da sua lista
  // pelo que eu vi, essa lista está dentro de alguns objetos que você itera pra montar a dataTable
  // então você vai ter que fazer um binding da sua tabela no teu backing bean pra pegar o índice da linha
  for( T t : dataModel.value.get( horizontalTable.getRowIndex() ).getDataModelInterno() ) {
    //criar o componente de imagem
    HtmlGraphicImage imagem = (HtmlGraphicImage) app.createComponent( HtmlGraphicImage.COMPONENT_TYPE );
    // vamos supor que nesse T tenha o endereço da imagem
    imagem.setUrl( t.getEnderecoDaImage() );
    // agora botamos a figura no panelGrid
    resultado.getChildren().add( imagem );
  }
  return resultado;
}

E daí na sua página tu faz assim:

em vez de:

<h:dataTable value="#{element1.dataModelInterno}" var="element2" width="480" cellspacing="10"> <h:column> <a id="exibirImagemGrande" onclick="abrir_popup('../infoCultural/exibirImagemGrande.jsf?urlImagem=#{element2.caminho}','400','350')"> <img src="#{element2.caminho}" width="50" height="50" align="left" class="img_link" /> </a> </h:column> </h:dataTable>

Você bota:

e adiciona um id pro teu htmlDataTable, eu botei “horizontalTable”

Obs: pediram pra te xingar poque vc usa RI :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue:

veja se consegue ae

Puts…achei muito complicado e acho que não vai rolar pro meu caso…
Tem outra forma de fazer isso? como ficaria com facelets ou myfaces?

Agradeço pela atenção…
Abraço!

com myfaces tomahawk é izi

<t:dataList var="objeto" value="#{minhaLista.lalala}"> <t:ouputText value="#{objeto.hello}" /> </t:dataList>

Agora é só tu escolher: O código de cima (do post anterior) ou essa tag ;D

Eu faria assim:

utilizando o tomahawk:

<h:column >
<f:facet name=“header”>
<h:outputText value="#{bundle.permission}" />
</f:facet>
<%–APENAS 10 ITENS SAO MOSTRADOS NA TELA newspaperColumns=“10” --%>
<t:dataTable columnClasses=“columnPerm” newspaperColumns=“10” newspaperOrientation=“horizontal” id=“listName2” value="#{dataList.categModel}" var=“dataList2” >
<h:column >
<h:commandButton id=“btremovePerm” action="#{UserInstallationBean.permissionRemove}" immediate=“true” style=“margin-left: 10px;” onclick=“if(!confirm(‘Deseja Remover ?’)){form.reset(); return false;}” image="/images/content_icon_delete.gif" alt="#{bundle.alt_remove_perm}" >
<h:graphicImage url="/PictureServlet?prodCatMstId=#{dataList2.prodCatMstId}" width=“30” height=“20” rendered="#{dataList2.picture != null}" />
</h:commandButton>
</h:column>
</t:dataTable>
</h:column>

Note que o código é apenas de uma coluna, coluna essa q faz parte de uma outra table!

o que faz a table renderizar os elementos para a direita é a propriedade:$$ newspaperOrientation=“horizontal” $$

Espero ter ajudado, abracos!

Galera, vou aproveitar o topico para colocar uma dúvida sobre dataTable tbm.

Estou tentando fazer uma especie de seleção unica em uma dataTable utilizando um radioButton na primeira coluna e as informações sobre a seleção nas seguintes. O que acontece é que a forma que estou utilizando não está produzindo o resultado esperado:

<h:dataTable value="#{tableData.nomes}" var="name">

    <h:column>
        <h:selectOneRadio>
            <f:selectItem  itemValue="#{name.id}" />
         </h:selectOneRadio>
    </h:column>

    <h:column>
        <h:outputText value="#{name.last}"/>
        <f:verbatim>,</f:verbatim>
    </h:column>

    <h:column>
        <h:outputText value="#{name.first}"/>
    </h:column>

</h:dataTable>

O trecho:

<h:selectOneRadio>
    <f:selectItem  itemValue="#{name.id}" />
</h:selectOneRadio>

está produzindo radios que estão funcionando como checkboxes.

Alguem tem alguma sugestão?
Obrigado.