コード例 #1
0
        /// <summary>
        /// Buscars the preguntas.
        /// </summary>
        private void BuscarPreguntas()
        {
            List<DTRol> listaRoles = new List<DTRol>();
            foreach (ListItem item in lstRoles.Items)
                if (item.Selected)
                    listaRoles.Add(new DTRol() { Nombre = item.Text });

            CuestionarioAccordion.Panes.Clear();

            #region --Preguntas Numéricas--

            listaRespuestaNumericas = new BLRespuesta().GetRespuestaPreguntaAnalisis(encuestaSesion, listaRoles);

            AccordionPane panel;
            Label lblCategoria;
            Table tabla = new Table();

            TableRow fila = new TableRow();
            TableCell celda = new TableCell();
            List<string> textoPregunta = new List<string>();

            foreach (RespuestaPreguntaAnalisis respuesta in listaRespuestaNumericas)
            {
                tabla = new Table();
                tabla.Width = Unit.Percentage(100);
                fila = new TableRow();
                celda = new TableCell();

                textoPregunta = new List<string>();

                textoPregunta = UIUtilidades.StringWrap(respuesta.textoPregunta, 130);

                lblCategoria = new Label();

                foreach (string item in textoPregunta)
                    lblCategoria.Text += item + "<br />";

                //lblCategoria.Text = respuesta.textoPregunta;
                tabla.BorderStyle = BorderStyle.None;
                celda.Controls.Add(lblCategoria);
                celda.Width = Unit.Percentage(90);
                celda.HorizontalAlign = HorizontalAlign.Left;

                fila.Cells.Add(celda);

                celda = new TableCell();
                lblCategoria = new Label();
                lblCategoria.Text = "[Relevancia: " + respuesta.relevancia.ToString().PadLeft(5, 'x') + "%]";
                lblCategoria.Text = lblCategoria.Text.Replace("x", "&nbsp;&nbsp;");

                celda.Controls.Add(lblCategoria);
                celda.HorizontalAlign = HorizontalAlign.Right;

                fila.Cells.Add(celda);
                tabla.Rows.Add(fila);

                panel = new AjaxControlToolkit.AccordionPane();
                panel.ID = "Panel_" + respuesta.idPregunta;

                panel.HeaderContainer.Controls.Add(tabla);
                panel.HeaderContainer.HorizontalAlign = HorizontalAlign.Left;

                ImageButton btnGraficar = new ImageButton();
                btnGraficar.ID = "btnGraficar_" + respuesta.idPregunta.ToString();
                btnGraficar.ToolTip = "Ver Gráfico";
                btnGraficar.ImageUrl = "~/Images/GraficarEncuesta.png";

                btnGraficar.CommandArgument = respuesta.idPregunta.ToString();
                btnGraficar.CommandName = "Graficar";
                btnGraficar.Command += new CommandEventHandler(btnGraficar_Command);

                List<miRespuesta> listaRespuestasPregunta = ObtenerRespuestas(respuesta);

                tabla = new Table();
                tabla.Width = Unit.Percentage(70);

                fila = new TableRow();
                celda = new TableCell();

                GridView grilla = new GridView();
                grilla.CssClass = "DatosLista";
                grilla.SkinID = "gridviewSkinPagerListado";
                grilla.AutoGenerateColumns = true;
                grilla.Width = Unit.Percentage(30);
                grilla.DataSource = listaRespuestasPregunta;
                grilla.DataBind();

                celda.Controls.Add(grilla);
                fila.Cells.Add(celda);

                celda = new TableCell();
                grilla.Width = Unit.Percentage(30);
                celda.VerticalAlign = VerticalAlign.Middle;
                celda.HorizontalAlign = HorizontalAlign.Center;
                celda.Controls.Add(btnGraficar);

                celda.Controls.Add(new LiteralControl(@"<br/><div class='loginDisplay' style='text-align: center'>"));

                celda.Controls.Add(new LiteralControl("[ "));

                LinkButton miLink = new LinkButton();
                miLink.Text = "Ver Gráfico";
                miLink.CommandArgument = respuesta.idPregunta.ToString();
                miLink.CommandName = "Graficar";
                miLink.Command += new CommandEventHandler(btnGraficar_Command);

                celda.Controls.Add(miLink);
                celda.Controls.Add(new LiteralControl(" ]</div>"));

                fila.Cells.Add(celda);

                tabla.Rows.Add(fila);

                panel.ContentContainer.Controls.Add(tabla);

                CuestionarioAccordion.Panes.Add(panel);
            }
            #endregion

            #region --Preguntas Textuales--

            listaRespuestaTextuales = new BLRespuesta().GetRespuestaPreguntaTextual(encuestaSesion, listaRoles);

            foreach (RespuestaPreguntaAnalisis respuesta in listaRespuestaTextuales)
            {
                tabla = new Table();
                tabla.Width = Unit.Percentage(100);
                fila = new TableRow();
                celda = new TableCell();

                textoPregunta = new List<string>();

                textoPregunta = UIUtilidades.StringWrap(respuesta.textoPregunta, 130);

                lblCategoria = new Label();

                foreach (string item in textoPregunta)
                    lblCategoria.Text += item + "<br />";

                tabla.BorderStyle = BorderStyle.None;
                celda.Controls.Add(lblCategoria);
                celda.Width = Unit.Percentage(90);
                celda.HorizontalAlign = HorizontalAlign.Left;

                fila.Cells.Add(celda);

                celda = new TableCell();
                lblCategoria = new Label();
                lblCategoria.Text = "[Relevancia: " + respuesta.relevancia.ToString().PadLeft(5, 'x') + "%]";
                lblCategoria.Text = lblCategoria.Text.Replace("x", "&nbsp;&nbsp;");

                celda.Controls.Add(lblCategoria);
                celda.HorizontalAlign = HorizontalAlign.Right;

                fila.Cells.Add(celda);
                tabla.Rows.Add(fila);

                panel = new AjaxControlToolkit.AccordionPane();
                panel.ID = "Panel_" + respuesta.idPregunta;

                panel.HeaderContainer.Controls.Add(tabla);
                panel.HeaderContainer.HorizontalAlign = HorizontalAlign.Left;

                List<miRespuestaTextual> listaRespuestasTextualesPregunta = ObtenerRespuestasTextuales(respuesta);

                tabla = new Table();
                tabla.Width = Unit.Percentage(70);

                fila = new TableRow();
                celda = new TableCell();

                GridView grilla = new GridView();
                grilla.CssClass = "DatosLista";
                grilla.SkinID = "gridviewSkinPagerListado";
                grilla.AutoGenerateColumns = true;
                grilla.Width = Unit.Percentage(30);
                grilla.DataSource = listaRespuestasTextualesPregunta;
                grilla.DataBind();

                celda.Controls.Add(grilla);
                fila.Cells.Add(celda);

                celda = new TableCell();
                grilla.Width = Unit.Percentage(30);
                celda.VerticalAlign = VerticalAlign.Middle;
                celda.HorizontalAlign = HorizontalAlign.Center;

                celda.Controls.Add(new LiteralControl(@"<div class='loginDisplay' style='text-align: center'>"));

                celda.Controls.Add(new LiteralControl("[ "));

                LinkButton miLink = new LinkButton();
                miLink.Text = "Ver Respuestas";
                miLink.CommandArgument = respuesta.idPregunta.ToString();
                miLink.CommandName = "Respuestas";
                miLink.Command += new CommandEventHandler(btnGraficar_Command);

                celda.Controls.Add(miLink);
                celda.Controls.Add(new LiteralControl(" ]</div>"));

                fila.Cells.Add(celda);

                tabla.Rows.Add(fila);

                panel.ContentContainer.Controls.Add(tabla);

                CuestionarioAccordion.Panes.Add(panel);
            }
            #endregion
        }
コード例 #2
0
        /// <summary>
        /// Handles the Command event of the btnGraficar control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.Web.UI.WebControls.CommandEventArgs"/> instance containing the event data.</param>
        void btnGraficar_Command(object sender, CommandEventArgs e)
        {
            if (e.CommandName == "Graficar")
            {
                RespuestaPreguntaAnalisis miPregunta = listaRespuestaNumericas.Find(p => p.idPregunta == Convert.ToInt32(e.CommandArgument));

                List<miRespuesta> listaRespuestaLocal = ObtenerRespuestas(miPregunta);
                DataTable dt = UIUtilidades.BuildDataTable<miRespuesta>(listaRespuestaLocal);
                grafico.Titulo = miPregunta.textoPregunta;
                tituloReporte = encuestaSesion.nombreEncuesta;
                //filtrosAplicados = miPregunta.textoPregunta;
                grafico.LimpiarSeries();
                grafico.AgregarSerie("Respuestas", dt, "respuesta", "cantidad");
                grafico.GraficarBarra();
            }
            if (e.CommandName == "Respuestas")
            {
                miPreguntaTextual = listaRespuestaTextuales.Find(p => p.idPregunta == Convert.ToInt32(e.CommandArgument));

                List<DTRol> listaRoles = new List<DTRol>();
                foreach (ListItem item in lstRoles.Items)
                    if (item.Selected)
                        listaRoles.Add(new DTRol() { Nombre = item.Text });

                listaRespuestasTextuales = new BLRespuesta().GetRespuestaTextuales(encuestaSesion.idEncuesta, miPreguntaTextual.idPregunta, listaRoles);

                ScriptManager.RegisterStartupScript(Page, GetType(), "VerRespuestas", "AbrirPopup();", true);
            }
        }