protected void Anos_DropDownList_SelectedIndexChanged(object sender, EventArgs e)
    {
        MontosEstimados_SqlDataSource.SelectParameters["CiaContab"].DefaultValue     = CiasContab_DropDownList.SelectedValue.ToString();
        MontosEstimados_SqlDataSource.SelectParameters["Moneda"].DefaultValue        = Monedas_DropDownList.SelectedValue.ToString();
        MontosEstimados_SqlDataSource.SelectParameters["AnoFiscal"].DefaultValue     = Anos_DropDownList.SelectedValue.ToString();
        MontosEstimados_SqlDataSource.SelectParameters["NombreUsuario"].DefaultValue = Membership.GetUser().UserName;

        MontosEstimados_ListView.DataBind();
        MontosEstimados_ListView.SelectedIndex = -1;
    }
    private void RefreshAndBindInfo()
    {
        if (!User.Identity.IsAuthenticated)
        {
            FormsAuthentication.SignOut();
            return;
        }


        if (Session["FiltroForma"] == null)
        {
            ErrMessage_Span.InnerHtml = "Aparentemente, Ud. no ha indicado un filtro aún.<br />Por favor indique y " +
                                        "aplique un filtro antes de intentar mostrar el resultado de la consulta.";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        dbContabDataContext dbContab = new dbContabDataContext();

        // --------------------------------------------------------------------------------------------
        // determinamos el mes y año fiscales, para usarlos como criterio para buscar el saldo en la tabla
        // SaldosContables. En esta table, los saldos están para el mes fiscal y no para el mes calendario.
        // Los meses solo varían cuando el año fiscal no es igual al año calendario

        // --------------------------------------------------------------------------------------------
        // eliminamos el contenido de la tabla temporal

        try
        {
            dbContab.ExecuteCommand("Delete From tTempWebReport_PresupuestoConsultaMontosEstimados Where NombreUsuario = {0}", Membership.GetUser().UserName);
        }
        catch (Exception ex)
        {
            dbContab.Dispose();

            ErrMessage_Span.InnerHtml = "Ha ocurrido un error al intentar ejecutar una operación de acceso a la base de datos.<br />" +
                                        "El mensaje específico de error es: " + ex.Message + "<br />";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        // usamos el criterio que indico el usuario para leer los códigos de presupuesto y sus montos
        // estimados y registrar esta información en una tabla 'temporal' (tTempWebReport...)

        var query = dbContab.ExecuteQuery <Presupuesto_Monto>(
            "Select * From Presupuesto_Montos Where " +
            Session["FiltroForma"].ToString());

        List <tTempWebReport_PresupuestoConsultaMontosEstimado> TemporalRecords_List =
            new List <tTempWebReport_PresupuestoConsultaMontosEstimado>();
        tTempWebReport_PresupuestoConsultaMontosEstimado TemporalRecord;

        foreach (Presupuesto_Monto record in query)
        {
            TemporalRecord = new tTempWebReport_PresupuestoConsultaMontosEstimado();

            TemporalRecord.Moneda            = record.Moneda;
            TemporalRecord.CiaContab         = record.CiaContab;
            TemporalRecord.AnoFiscal         = record.Ano;
            TemporalRecord.CodigoPresupuesto = record.CodigoPresupuesto;

            TemporalRecord.Mes01_Est = record.Mes01_Est;
            TemporalRecord.Mes02_Est = record.Mes02_Est;
            TemporalRecord.Mes03_Est = record.Mes03_Est;
            TemporalRecord.Mes04_Est = record.Mes04_Est;
            TemporalRecord.Mes05_Est = record.Mes05_Est;
            TemporalRecord.Mes06_Est = record.Mes06_Est;
            TemporalRecord.Mes07_Est = record.Mes07_Est;
            TemporalRecord.Mes08_Est = record.Mes08_Est;
            TemporalRecord.Mes09_Est = record.Mes09_Est;
            TemporalRecord.Mes10_Est = record.Mes10_Est;
            TemporalRecord.Mes11_Est = record.Mes11_Est;
            TemporalRecord.Mes12_Est = record.Mes12_Est;

            TemporalRecord.NombreUsuario = Membership.GetUser().UserName;

            TemporalRecords_List.Add(TemporalRecord);
        }

        try
        {
            dbContab.tTempWebReport_PresupuestoConsultaMontosEstimados.InsertAllOnSubmit(TemporalRecords_List);
            dbContab.SubmitChanges();
        }

        catch (Exception ex)
        {
            dbContab.Dispose();

            ErrMessage_Span.InnerHtml        = "Ha ocurrido un error al intentar ejecutar una operación de acceso a la base de datos. <br /> El mensaje específico de error es: " + ex.Message + "<br /><br />";
            ErrMessage_Span.Style["display"] = "block";
            return;
        }

        this.CiasContab_SqlDataSource.SelectParameters["NombreUsuario"].DefaultValue = Membership.GetUser().UserName;
        this.Monedas_SqlDataSource.SelectParameters["NombreUsuario"].DefaultValue    = Membership.GetUser().UserName;
        this.Anos_SqlDataSource.SelectParameters["NombreUsuario"].DefaultValue       = Membership.GetUser().UserName;

        CiasContab_DropDownList.DataBind();
        Monedas_DropDownList.DataBind();
        Anos_DropDownList.DataBind();

        // intentamos usar como parametros del LinqDataSource el primer item en los combos Monedas y CiasContab

        if (this.CiasContab_DropDownList.Items.Count > 0)
        {
            CiasContab_DropDownList.SelectedIndex = 0;
        }

        if (this.Monedas_DropDownList.Items.Count > 0)
        {
            Monedas_DropDownList.SelectedIndex = 0;
        }

        if (this.Anos_DropDownList.Items.Count > 0)
        {
            Anos_DropDownList.SelectedIndex = 0;
        }

        // establecemos los valores de los parámetros en el LinqDataSource


        MontosEstimados_SqlDataSource.SelectParameters["CiaContab"].DefaultValue = "-999";
        MontosEstimados_SqlDataSource.SelectParameters["Moneda"].DefaultValue    = "-99";
        MontosEstimados_SqlDataSource.SelectParameters["AnoFiscal"].DefaultValue = "-99";

        if (CiasContab_DropDownList.SelectedValue != null &&
            CiasContab_DropDownList.SelectedValue.ToString() != "")
        {
            MontosEstimados_SqlDataSource.SelectParameters["CiaContab"].DefaultValue =
                CiasContab_DropDownList.SelectedValue.ToString();
        }

        if (Monedas_DropDownList.SelectedValue != null &&
            Monedas_DropDownList.SelectedValue.ToString() != "")
        {
            MontosEstimados_SqlDataSource.SelectParameters["Moneda"].DefaultValue =
                Monedas_DropDownList.SelectedValue.ToString();
        }

        if (Anos_DropDownList.SelectedValue != null &&
            Anos_DropDownList.SelectedValue.ToString() != "")
        {
            MontosEstimados_SqlDataSource.SelectParameters["AnoFiscal"].DefaultValue =
                Anos_DropDownList.SelectedValue.ToString();
        }

        MontosEstimados_SqlDataSource.SelectParameters["NombreUsuario"].DefaultValue = Membership.GetUser().UserName;

        MontosEstimados_ListView.DataBind();

        dbContab.Dispose();
    }