Atualizar gráfico ao clicar em coluna datatable

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

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:

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;
    }
}

#{graficosBean.carrega(d.id_funcionarios_2, loginBean.login.i_pessoas, 'd.stri_competencias', d.flag_13)}

coloque entre aspas simples o d.stri_competencias