/*=========================================================================================================================== * 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 description for GridViewBoundField /// 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 /// /// Guarda los valores del campo del grid /// /// Campo de la base de datos /// Valor de la columna /// Si es valor de busqueda /// Si es fecha /// Si el campo se visualiza o no en pantalla 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); } /// /// Guarda los valores del campo del grid /// /// Campo de la base de datos /// Valor de la columna /// Si es valor de busqueda /// Si es true, que texto desea que aparezca /// Si es false, que texto desea que aparezca /// Si el campo se visualiza o no en pantalla 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 }