none
Google Charts Acessar campos do forms RRS feed

  • Pergunta

  • Bom dia pessoal.

    Tenho a seguinte programação abaixo que funciona normalmente.

                            StringBuilder   str = new StringBuilder();


                            str.Append("<script type='text/javascript'>");
                            str.Append("google.charts.load(\"current\", { packages:[\"corechart\"]});");
                            str.Append("google.setOnLoadCallback(drawChart);");
                            str.Append("function drawChart() {");
                            str.Append("var data = google.visualization.arrayToDataTable([");
                            str.Append("[\"Nome\", \"Total\", { role: \"style\" } ],");


                            for (int i = 0; i < _dt.Rows.Count; i++)
                            {
                                str.Append("['" + _dt.Rows[i]["Nome"].ToString() + "'," + _dt.Rows[i]["Total"].ToString() + ",\"" + listadecores[i].ToString() + "\"],");
                            }

                            str.Append("]);");

                            str.Append("var view = new google.visualization.DataView(data);");
                            str.Append("view.setColumns([0, 1,");
                            str.Append("{ calc:\"stringify\",");
                            str.Append("sourceColumn: 1,");
                            str.Append("type:\"string\",");
                            str.Append("role:\"annotation\" },");
                            str.Append("2]);");

                            str.Append("var options = {");
                            str.Append("title: \"" + ddlgrafico.SelectedItem.Text + "\",");
                            str.Append("legend: { position: \"none\" },");
                            str.Append("'is3D':true};");
                            //str.Append("};");

                            str.Append("var chart = new google.visualization.ColumnChart(document.getElementById('columnchart_values'));");
                            str.Append("chart.draw(view, options);");

                            //Seta o callback no gráfico
                            str.Append("google.visualization.events.addListener(chart, 'select', selectHandler);");

                            //função callback para evento de select
                            str.Append("function selectHandler(e){");
                            str.Append("var texto = data.getValue((\"ctl00_ContentPlaceHolder1_txtdatafim\").value)");//
                            str.Append("alert(texto);");
                            //str.Append("var url = 'relfichaexpangrafico.aspx?nome='+ data.getValue(chart.getSelection()[0].row, 0);");
                            //str.Append("window.open(url,'NewWindow','left=50, top=10, status=yes, resizable=yes, scrollbars= yes, toolbar= no,location= no, menubar= no')");


                            ////aqui você pode adicionar um window.location para funcionar como o link
                             str.Append("}");
                            str.Append("}");

                            str.Append("</script>");

                            ltlresultadografico.Text = str.ToString();

    A dúvida é a seguinte: Tenho um campo chamado txtdatafim.Text que esta dentro de uma pagina Master e consigo acessar ele com uma função simples da seguinte forma:

    Até ai normal.

    function getTexto() {
             var texto = document.getElementById("ctl00_ContentPlaceHolder1_txtdatafim").value;
              alert(texto);
    }

    No gráfico do Google existem uma função que é possível selecionar as colunas do gráfico da seguinte forma:

    str.Append("function selectHandler(e){");

    str.Append("var url = 'relfichaexpangrafico.aspx?nome='+ data.getValue(chart.getSelection()[0].row, 0);");

    str.Append("window.open(url,'NewWindow','left=50, top=10, status=yes, resizable=yes, scrollbars= yes, toolbar= no,location= no, menubar= no')");

    str.Append("}"); 

    Mas o problema é que não consigo acessar nenhum campo fora do gráfico quando coloco essas linhas abaixo dentro dessa função acima e outra coisa que ocorre que o gráfico não funciona mais. O que está de errado?

    Já fiz dessa forma abaixo e não funciona

    str.Append("var texto = data.getValue((\"ctl00_ContentPlaceHolder1_txtdatafim\").value)");
    str.Append("alert(texto);");

    e dessa forma tb não funciona.

    str.Append("var texto = document.getElementById((\"ctl00_ContentPlaceHolder1_txtdatafim\").value)");
    str.Append("alert(texto);");


    Será que isso não é possível?


    Fabricio

    segunda-feira, 16 de setembro de 2019 11:40