/// <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", " "); 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", " "); 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 }
/// <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); } }