TFS_ANTIGUO/AYA.FROPI/FOPI/App_Code/GridViewBoundField.cs

137 lines
4.7 KiB
C#
Raw Permalink Normal View History

/*===========================================================================================================================
* Instituto Costarricense de Acueductos y Alcantarillados. - 2015
* Administración de la Seguridad
* Clase: GridBoundField.cs
*
* Explicación de los contenidos del archivo
*===========================================================================================================================
* HISTORIAL
*
* PERSONA DIA MES - AÑO DESCRIPCIÓN
* Esteban Gutierrez Rapso 20 04 - 2015 Se inicia con el diseño de la clase
*
*
*===========================================================================================================================
* 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
*===========================================================================================================================
*/
using System.Web.UI.WebControls;
/// <summary>
/// Summary description for GridViewBoundField
/// </summary>
public class GridViewBoundField : BoundField
{
#region Variables
private string valorTrue; // para manejo de datos booleanos
private string valorFalse; // para manejo de datos booleanos
public string ValorTrue
{
get { return valorTrue ?? true.ToString(); }
set { valorTrue = value; }
}
public string ValorFalse
{
get { return valorFalse ?? false.ToString(); }
set { valorFalse = value; }
}
public string AliasField
{
get;
set;
}
public bool IsDate
{
get;
set;
}
public bool IsSearch
{
get;
set;
}
#endregion
#region Constructores
/// <summary>
/// Guarda los valores del campo del grid
/// </summary>
/// <param name="p_DataField">Campo de la base de datos</param>
/// <param name="p_HeaderText">Valor de la columna</param>
/// <param name="p_esBusqueda">Si es valor de busqueda</param>
/// <param name="p_esFecha">Si es fecha</param>
/// <param name="p_esVisible">Si el campo se visualiza o no en pantalla</param>
public GridViewBoundField(string p_DataField, string p_HeaderText, bool p_esBusqueda, bool p_esFecha, bool p_esVisible)
{
this.DataField = p_DataField;
this.SortExpression = p_DataField;
this.HeaderText = p_HeaderText;
this.IsSearch = p_esBusqueda;
this.IsDate = p_esFecha;
if (p_esFecha)
{
this.DataFormatString = "{0:dd/MM/yyyy}";
}
setVisible(p_esVisible);
}
/// <summary>
/// Guarda los valores del campo del grid
/// </summary>
/// <param name="p_DataField">Campo de la base de datos</param>
/// <param name="p_HeaderText">Valor de la columna</param>
/// <param name="p_esBusqueda">Si es valor de busqueda</param>
/// <param name="p_strTrueValue">Si es true, que texto desea que aparezca</param>
/// <param name="p_strFalseValue">Si es false, que texto desea que aparezca</param>
/// <param name="p_esVisible">Si el campo se visualiza o no en pantalla</param>
public GridViewBoundField(string p_DataField, string p_HeaderText, bool p_esBusqueda, string p_strTrueValue, string p_strFalseValue, bool p_esVisible)
{
this.DataField = p_DataField;
this.SortExpression = p_DataField;
this.HeaderText = p_HeaderText;
this.IsSearch = p_esBusqueda;
this.IsDate = false;
this.ValorTrue = p_strTrueValue;
this.ValorFalse = p_strFalseValue;
setVisible(p_esVisible);
}
// para manejo de datos booleanos
protected override string FormatDataValue(object dataValue, bool encode)
{
//Si el tipo de datos no es boolean se comporta como un BoundField normal
if (dataValue is bool)
return ((bool)dataValue) ? ValorTrue : ValorFalse;
else
return base.FormatDataValue(dataValue, encode);
}
#endregion
#region Metodos Personalizados
private void setVisible(bool esVisible)
{
if (!esVisible)
{
HeaderStyle.CssClass = "escondeColumnas";
ItemStyle.CssClass = "escondeColumnas";
FooterStyle.CssClass = "escondeColumnas";
}
}
#endregion
}