Boa tarde pessoal, estou tentando abrir um p:dialog e carregar um gráfico ao clicar numa linha do datatable, só que ele não está atualizando, sempre abre o mesmo gráfico não importa qual linha eu clique.
Segue abaixo a coluna do datatable.
<p:column style="text-align: center;width: 35px">
<p:commandButton icon="fa fa-pie-chart" update=":painelGraficos" oncomplete="PF('dlgGraficos').show()">
<f:ajax execute="#{graficosBean.carrega(d.id_funcionarios_2, loginBean.login.i_pessoas, d.stri_competencias, d.flag_13)}" />
</p:commandButton>
</p:column>
</p:dataTable>
aqui o dialog:
<p:dialog width="900" id="graficos" position="top" resizable="false" closeOnEscape="true" modal="true"
maximizable="false" header="Gráficos de contracheque" widgetVar="dlgGraficos">
<p:outputPanel id="painelGraficos">
<p:panelGrid columns="2" class="noborder" style="width: 100%">
<p:chart style="height: 560px" id="donut1" model="#{graficosBean.donutModel1}" type="donut" />
<p:chart style="height: 560px" id="donut2" model="#{graficosBean.donutModel2}" type="donut" />
</p:panelGrid>
</p:outputPanel>
</p:dialog>
Ao fazer um debug, vi que os parametros são carregados junto com a página e não no momento do clique.
alguem pode me ajudar?
Valeu
Wagner_Vielmo:
<p:commandButton icon=“fa fa-pie-chart” update=":painelGraficos" oncomplete=“PF(‘dlgGraficos’).show()”>
<f:ajax execute="#{graficosBean.carrega(d.id_funcionarios_2, loginBean.login.i_pessoas, d.stri_competencias, d.flag_13)}" />
</p:commandButton>
tente assim:
<p:commandButton icon="fa fa-pie-chart" process="@this,idTabela" action="#{graficosBean.carrega(d.id_funcionarios_2, loginBean.login.i_pessoas, d.stri_competencias, d.flag_13)}" update=":painelGraficos" oncomplete="PF('dlgGraficos').show()"/>
Mesma, coisa.
Ele não ta chamando novamente o:
graficosBean.carrega(...);
Estranho… estou errando em alguma coisa…
a função carrega recebe quais parâmetros??
Os parametros são selecionados na linha clicada do datatable, porém o método não está sendo executado quando eu clico na linha, ele carrega antes junto com a página.
sim mais quais parametros a função carrega recebe se tiver String a variavel deve estar entre aspas simples no xhtml (’’)
Estou passando assim, direto pelo método:
blayd2015:
#{graficosBean.carrega(d.id_funcionarios_2, loginBean.login.i_pessoas, d.stri_competencias, d.flag_13)}
até ai ta certinho resta saber como sua função carrega foi declarada lá no graficosBean
Ahh tá entendi!
segue abaixo o bean:
@ManagedBean(name = "graficosBean")
@ViewScoped
public class GraficosBean implements Serializable {
private DonutChartModel donutModel1;
private List<Valores> list;
private Integer i_f = 0;
private Integer i_p = 0;
private String comp = "";
private Boolean flag = false;
public GraficosBean() {
}
public void carrega(Integer f, Integer p, String c, Boolean fl) {
this.i_f = f;
this.i_p = p;
this.comp = c;
this.flag = fl;
createDonutModels();
}
private void createDonutModels() {
donutModel1 = initDonutModel();
donutModel1.setTitle("Proventos");
donutModel1.setLegendPosition("n");
donutModel1.setSliceMargin(5);
donutModel1.setShowDataLabels(true);
donutModel1.setDataFormat("value");
donutModel1.setShadow(true);
donutModel1.setSeriesColors("6A5ACD, 00008B, 0000CD, 6495ED, 1E90FF, 00BFFF, 4682B4, ADD8E6");
}
private DonutChartModel initDonutModel() {
DonutChartModel model = new DonutChartModel();
Map<String, Number> circle1 = new LinkedHashMap<>();
for (Valores f : getList()) {
if (f.getTipo_pd().equals("P")) {
circle1.put(f.getNome_35_evento(), f.getVlr_calc());
}
}
model.addCircle(circle1);
return model;
}
/**
* @return the list
*/
public List<Valores> getList() {
if (list == null) {
System.out.println("i_f: " + i_f);
System.out.println("i_p: " + i_p);
System.out.println("i_c: " + comp);
System.out.println("flag: " + flag);
setList(new ValoresDAO().getList(i_f, i_p, comp, flag));
}
return list;
}
/**
* @param list the list to set
*/
public void setList(List<Valores> list) {
this.list = list;
}
/**
* @return the donutModel1
*/
public DonutChartModel getDonutModel1() {
donutModel1 = initDonutModel();
donutModel1.setTitle("Proventos");
donutModel1.setLegendPosition("n");
donutModel1.setSliceMargin(5);
donutModel1.setShowDataLabels(true);
donutModel1.setDataFormat("value");
donutModel1.setShadow(true);
donutModel1.setSeriesColors("6A5ACD, 00008B, 0000CD, 6495ED, 1E90FF, 00BFFF, 4682B4, ADD8E6");
return donutModel1;
}
/**
* @param donutModel1 the donutModel1 to set
*/
public void setDonutModel1(DonutChartModel donutModel1) {
this.donutModel1 = donutModel1;
}
}
Wagner_Vielmo:
#{graficosBean.carrega(d.id_funcionarios_2, loginBean.login.i_pessoas, d.stri_competencias, d.flag_13)}
#{graficosBean.carrega(d.id_funcionarios_2, loginBean.login.i_pessoas, 'd.stri_competencias', d.flag_13)}
coloque entre aspas simples o d.stri_competencias