[RESOLVIDO] DataTable selection não atribui row selecionada

3 respostas
N

Olá,

A DataTable não está atribuindo ao objeto a row selecionada, ae quando vou exibir o Dialog ele não exibe nada.

Página

<h:form id="form">
            <p:fieldset legend="Scoredcards">
                <p:panel>
                    <h:panelGrid columns="5"  cellpadding="1" style="height:50px;text-align: left;">
                        <h:outputText value="Planejamento: " style="font-size: 12px;width: 200px;" />
                        <h:selectOneMenu id="planejamento" value="#{peBean.selecionado}" style="height: 20px;font-size: 12px;" >
                            <f:selectItem itemLabel="Selecione um planejamento." itemValue="0" />
                            <f:selectItems value="#{bscBean.lista}" var="pe" itemLabel="#{pe.nome}" itemValue="#{pe.id}"/>
                        </h:selectOneMenu>
                        <h:outputText value="Data: " style="font-size: 12px;width: 200px" />
                        <p:calendar id="cal" style="font-size: 12px; width: 30px;height:130px;" locale="pt" mode="popup" showOn="button" navigator="true" value="#{peBean.data}" pattern="dd/MM/yyyy" showButtonPanel="true" mindate="01/01/2012"/>
                        <p:commandButton value="Carregar" id="ajax" actionListener="#{peBean.gerarLista()}" update=":form:teste"  />

                    </h:panelGrid>
                    <h:panelGrid id="teste" width="100%"> 
                        <p:tabView value="#{peBean.listaPe.listaPerspectivas}" var="perspectiva" dynamic="true" >
                            <p:tab title="#{perspectiva.nome}">
                                <h:panelGrid columns="2" >
                                    <h:column> 
                                        <p:meterGaugeChart  label="#{perspectiva.nome} : #{perspectiva.valorAcumulado}%" value="#{peBean.pegarModelo(perspectiva.valorAcumulado)}" showTickLabels="true" labelHeightAdjust="90" intervalOuterRadius="65" seriesColors="cc6666,E7E658,93b75f,66cc66 " style="width:280px;height:190px;font-size: 12px;"/>
                                    </h:column>
                                    <h:column>
                                        <p:dataTable id="objTable"  style="font-size: 11px;" value="#{perspectiva.listaObjetivos}" var="objetivo" rowKey="#{objetivo.id}" selection="#{peBean.objetivoSelect}" selectionMode="single" >
                                            <f:facet name="header">
                                                Objetivos Estratégicos
                                            </f:facet>
                                            <p:column headerText="Status">
                                                <p:graphicImage value="/imagens/sinalizadores/#{objetivo.status}"/>
                                            </p:column>
                                            <p:column headerText="Descrição" width="300" style="text-align: left;">
                                                #{objetivo.nome}
                                            </p:column>
                                            <p:column headerText="% Acum.">
                                                #{objetivo.valorAcumulado}%
                                            </p:column>
                                            <p:column headerText="% Real">
                                                #{objetivo.valorMes}%
                                            </p:column>
                                            <f:facet name="footer">
                                                <p:commandButton id="objButton" value="Visualizar detalhes do objetivo selecionado" icon="ui-icon-search" update=":form:objGrid" oncomplete="objDialog.show()"/>
                                            </f:facet>
                                        </p:dataTable> 
                                         
                                    </h:column>
                                </h:panelGrid>
                            </p:tab>
                        </p:tabView>
                    </h:panelGrid>
                    <p:dialog id="dialogObjetivos" modal="true" header="Detalhes do Objetivo" widgetVar="objDialog" resizable="false"  width="1280" height="500" showEffect="clip" hideEffect="clip">
                        <h:panelGrid id="objGrid" columns="1">
                            <h:outputText value="#{peBean.objetivoSelect.nome}" />
                        </h:panelGrid>
                    </p:dialog>
                </p:panel>

            </p:fieldset>
        </h:form>

Bean

@ManagedBean(name = "peBean")
@SessionScoped
public class PlanejamentoEstrategicoBean implements Serializable {

    private String selecionado = "0";
    private ObjetivoEstrategico objetivoSelect;
    private Indicador indicadorSelect;
    private PlanejamentoEstrategico listaPe;
    private MeterGaugeChartModel modelMGCM;
    private Date data = DataUtil.getDateAgora();

    public PlanejamentoEstrategicoBean() throws Exception {
        gerarLista();
    }

    public void gerarLista() throws Exception {
        PlanejamentoEstrategicoDao dao = new PlanejamentoEstrategicoDao();
        listaPe = dao.getPlanejamento(Integer.parseInt(selecionado), data);
    }

    public MeterGaugeChartModel pegarModelo(String valor) {
        List<Number> intervals = new ArrayList<Number>();
        intervals.add(70);
        intervals.add(90);
        intervals.add(100);
        intervals.add(120);
        setModelMGCM(new MeterGaugeChartModel(Double.parseDouble(valor.replace(",", ".")), intervals));
        return getModelMGCM();
    }

    public String getSelecionado() {
        return selecionado;
    }

    public void setSelecionado(String selecionado) {
        this.selecionado = selecionado;
    }

    public PlanejamentoEstrategico getListaPe() {
        return listaPe;
    }

    public void setListaPe(PlanejamentoEstrategico listaPe) {
        this.listaPe = listaPe;
    }

    public Date getData() {
        return data;
    }

    public void setData(Date data) {
        this.data = data;
    }

    public ObjetivoEstrategico getObjetivoSelect() {
        return objetivoSelect;
    }

    public void setObjetivoSelect(ObjetivoEstrategico objetivoSelect) {
        this.objetivoSelect = objetivoSelect;
    }

    public Indicador getIndicadorSelect() {
        return indicadorSelect;
    }

    public void setIndicadorSelect(Indicador indicadorSelect) {
        this.indicadorSelect = indicadorSelect;
    }

    public MeterGaugeChartModel getModelMGCM() {
        return modelMGCM;
    }

    public void setModelMGCM(MeterGaugeChartModel modelMGCM) {
        this.modelMGCM = modelMGCM;
    }
}

3 Respostas

E

Tente

<p:commandButton id="objButton" value="Visualizar detalhes do objetivo selecionado" icon="ui-icon-search" update=":form:objGrid" oncomplete="objDialog.show()" <f:setPropertyActionListener value="#{objetivo}" target="#{peBean.objetivoSelect}"/> </p:commandButton>

N

Obrigado. Funcionou.

N

[RESOLVIDO]

Criado 12 de setembro de 2012
Ultima resposta 25 de set. de 2012
Respostas 3
Participantes 2