TFS_ANTIGUO/SIGPC/ControlUsuario/cuwBusquedaList.ascx.cs

240 lines
10 KiB
C#
Raw Normal View History

/*===========================================================================================================================
* Instituto Costarricense de Acueductos y Alcantarillados. - 2015
* Administración de la Seguridad
* Nombre del control de usuario: cuwBusquedaList.ascx
*
* Explicación de los contenidos del archivo
*===========================================================================================================================
* HISTORIAL
*
* PERSONA DIA MES - AÑO DESCRIPCIÓN
* Juan Pablo Monge Delgad 22 02 - 2016 Se inicia con el diseño del control
* Juan Pablo Monge Delgad 22 02 - 2016 Se finaliza con el desarrollo del control
*
*===========================================================================================================================
* Derechos Reservados (C) 2015 AyA.
* ESTE CÓDIGO ES PROVEÍDO TAL CUAL ES SIN GARANTÍA ALGUNA
* DE NINGÚN TIPO, SEA IMPLICITA O EXPLICITA.
* NO SE PERMITE SU REPRODUCCIÓN PARCIAL O TOTAL, NI SU COMERCIALIZACIÓN
*===========================================================================================================================
*
Este control utiliza jquery por lo que se debera ir al archivo ../../Scripts/WebForms/General/cuwBusquedaList.js,
si se desea agregar algun cambio en el comportamiento
*
Para utilizarlo debera agregar el siguiente tag a la ventana en el archivo .aspx:
* <%@ Register Src="~/ControlUsuario/cuwBusquedaList.ascx" TagPrefix="uc1" TagName="cuwBusquedaList" %>
Se deben agregar los siguientes metodos al archivo .cs
En inicializarFormulario(): cuwBusquedaList.Buscar += new _controlesusuario_Estandar_cuwBusquedaList.SearchEvent(Buscar);
construirGridView: cuwBusquedaList.LlenarCHKLBusqueda(grvListaDatosTemp);
llenarGridView: condicionesBusqueda(p_parametros); y DataSet dsBitacora = objBitacoraBL.getDatosBitacora(arlCondicionesFiltroBusqueda);
* Debe existir el metodo condicionesBusqueda() sino debe extraerlo de la pagina de bitacora
* llenarGridView despues del isPostback: condicionesBusqueda();
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AyABL.RCS;
public partial class _controlesusuario_Estandar_cuwBusquedaList : System.Web.UI.UserControl
{
#region Variables
public delegate void SearchEvent();
public event SearchEvent Buscar;
#endregion
#region Eventos Controles Web
protected void btnBusqueda_Click(object sender, ImageClickEventArgs e)
{
try
{
Buscar();
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region Métodos Personalizados
/// <summary>
/// Metodo que carga el listado desplegable del buscador
/// </summary>
public void LlenarCHKLBusqueda(GridView gridView)
{
try
{
TableRow row = new TableRow();
foreach (DataControlField dgcDGTempColumn in gridView.Columns)//por cada coloumna del gridview
{
if (dgcDGTempColumn.GetType().ToString() == "GridViewBoundField")
{
GridViewBoundField ndbTempDGBoundField = (GridViewBoundField)dgcDGTempColumn;
if (ndbTempDGBoundField.Visible && ndbTempDGBoundField.IsSearch)//si se habilito la busqueda durante la inicializacion
{
ListItem litTempItem = new ListItem(ndbTempDGBoundField.HeaderText, ndbTempDGBoundField.DataField);
//chkFiltro.Items.Add(litTempItem);
Label lblTitulo = new Label();
lblTitulo.ID = "lbl" + ndbTempDGBoundField.DataField;
lblTitulo.Text = ndbTempDGBoundField.HeaderText;
CheckBox chkTitulo = new CheckBox();
chkTitulo.ID = "chk" + ndbTempDGBoundField.DataField;
TableCell cell = new TableCell();
cell.Controls.Add(chkTitulo);
cell.Controls.Add(lblTitulo);
row.Cells.Add(cell);
}
}
}
tblParametrosConsulta.Rows.Add(row);
//se crea una subtabla para poder acomodar los controles de fecha
TableRow rowControles = new TableRow();
foreach (DataControlField dgcDGTempColumn in gridView.Columns)
{
if (dgcDGTempColumn.GetType().ToString() == "GridViewBoundField")
{
GridViewBoundField ndbTempDGBoundField = (GridViewBoundField)dgcDGTempColumn;
if (ndbTempDGBoundField.Visible && ndbTempDGBoundField.IsSearch)
{
TextBox txtParametro = new TextBox();
txtParametro.Attributes["placeholder"] = ndbTempDGBoundField.HeaderText;
DropDownList ddlParametro = new DropDownList();
ddlParametro.Items.Add(new ListItem("No", "0"));
ddlParametro.Items.Add(new ListItem("Si", "1"));
ddlParametro.Items.Add(new ListItem("Ambos", "2"));
ddlParametro.SelectedValue = "2";
TextBox txtCalendarioInicio = new TextBox();
txtCalendarioInicio.CssClass = "date";
txtCalendarioInicio.Attributes["placeholder"] = ndbTempDGBoundField.HeaderText + " INICIO";
TextBox txtCalendarioFin = new TextBox();
txtCalendarioFin.CssClass = "date";
txtCalendarioFin.Attributes["placeholder"] = ndbTempDGBoundField.HeaderText + " FIN";
TableCell cell = new TableCell();
if (ndbTempDGBoundField.DataField.Contains("FECHA") == true)
{
Table tbFecha = new Table();
tbFecha.ID = "tablaFecha" + ndbTempDGBoundField.DataField;
TableRow rowfFecha = new TableRow();
TableCell cellFechaInicio = new TableCell();
TableCell cellFechaFin = new TableCell();
txtCalendarioInicio.ID = ndbTempDGBoundField.DataField + "INICIO";
cellFechaInicio.Controls.Add(txtCalendarioInicio);
rowfFecha.Cells.Add(cellFechaInicio);
tbFecha.Rows.Add(rowfFecha);
txtCalendarioFin.ID = ndbTempDGBoundField.DataField + "FIN";
cellFechaFin.Controls.Add(txtCalendarioFin);
rowfFecha.Cells.Add(cellFechaFin);
tbFecha.Rows.Add(rowfFecha);
cell.Controls.Add(tbFecha);
}
else
{
if (ndbTempDGBoundField.ValorFalse != "False" && ndbTempDGBoundField.ValorTrue != "True")
{
ddlParametro.ID = ndbTempDGBoundField.DataField;
cell.Controls.Add(ddlParametro);
}
else
{
txtParametro.ID = ndbTempDGBoundField.DataField;
cell.Controls.Add(txtParametro);
}
}
rowControles.Cells.Add(cell);
}
}
}
tblParametrosConsulta.Rows.Add(rowControles);
}
catch (Exception ex)
{
throw ex;
}
}
//<summary>
//Metodo que devuelve el filtro seleccionado (Nombre del campo en la base de datos) y el valor de busqueda
//</summary>
//<returns></returns>
public string getValorBusqueda()
{
try
{
string allTextBoxValues = "";
foreach (Control c in tblParametrosConsulta.Rows[1].Controls)
{
foreach (Control childc in c.Controls)
{
if (childc is TextBox)
{
allTextBoxValues += childc.ID + ":";
allTextBoxValues += ((TextBox)childc).Text + ",";
}
if (childc is DropDownList)
{
allTextBoxValues += "booleano|" + childc.ID + ":";
allTextBoxValues += ((DropDownList)childc).SelectedValue.ToString() + ",";
}
if (childc is Table)
{
Table tbFecha = (Table)childc;
foreach (Control c2 in tbFecha.Rows[0].Controls)
{
foreach (Control childc2 in c2.Controls)
{
if (childc2 is TextBox)
{
allTextBoxValues += childc2.ID + ":";
allTextBoxValues += ((TextBox)childc2).Text + ",";
}
}
}
}
}
}
return allTextBoxValues;
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
}