dadaTable, JSF

7 respostas
Childrico

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!

7 Respostas

Leozin

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

Childrico

Sun JSF RI

Leozin

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

Childrico

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!

Leozin

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

belatra

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!

L

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.

Criado 31 de agosto de 2007
Ultima resposta 31 de jan. de 2008
Respostas 7
Participantes 4