protected void BindData()
        {
            List <Temporada> listaTemporadas = TemporadaLN.getInstance().listaTemporadas(Session["schema"].ToString());

            gridTemporadas.DataSource = listaTemporadas;
            gridTemporadas.DataBind();
        }
        // Eliminar seleccionados
        protected void BtnDelete_Click(object sender, EventArgs e)
        {
            int count = 0;

            foreach (GridViewRow row in gridTemporadas.Rows)
            {
                CheckBox chk = (CheckBox)row.FindControl("chkDelete");
                if (chk.Checked)
                {
                    TextBox txtId       = (TextBox)row.FindControl("txtId");
                    TextBox txtAno      = (TextBox)row.FindControl("txtAno");
                    TextBox txtEstacion = (TextBox)row.FindControl("txtEstacion");
                    int     id          = Convert.ToInt32(txtId.Text.Trim());
                    string  ano         = txtAno.Text.Trim();
                    string  estacion    = txtEstacion.Text.Trim();
                    bool    eliminados  = TemporadaLN.getInstance().eliminarTemporada(id,
                                                                                      Session["schema"].ToString());
                    if (!eliminados)
                    {
                        Response.Write(@"<script language='javascript'>alert('Error al eliminar la temporada "
                                       + ano + " " + estacion + " .');</script>");
                    }
                    else
                    {
                        count = count + 1;
                    }
                }
            }
            Response.Write(@"<script language='javascript'>alert('Eliminados: " + count + " .');</script>");
            Response.Redirect(Request.Url.AbsoluteUri);
        }
        protected void BtnAdd_Click(object sender, EventArgs e)
        {
            string ano     = txtAno.Text.ToString().Trim();
            string retorno = TemporadaLN.getInstance().nuevaTemporada(ano, txtEstacion.Text.Trim(),
                                                                      Session["schema"].ToString());

            txtAno.Text      = "";
            txtEstacion.Text = "";
            Response.Write(@"<script language='javascript'>alert('" + retorno + " .');</script>");
        }
        // cargar temporadas
        protected void cargarTemporadas()
        {
            List <Temporada> list = TemporadaLN.getInstance().listaTemporadas(Session["schema"].ToString());

            foreach (Temporada temporada in list)
            {
                ListItem newItem = new ListItem(temporada.nombre, temporada.id.ToString(), true);
                ddlTemporada.Items.Add(newItem);
            }
        }
        // cargar ddls en modo edicion
        protected void gridModelos_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow && gridModelos.EditIndex == e.Row.RowIndex)
            {
                #region "cargar lista proveedores"
                DropDownList     ddlproveedores   = (DropDownList)e.Row.FindControl("ddlProveedores");
                List <Proveedor> listaProveedores = ProveedorLN.getInstance().listaProveedores(Session["schema"].ToString());
                foreach (Proveedor proveedor in listaProveedores)
                {
                    ListItem newItem = new ListItem(proveedor.nombre, proveedor.id.ToString(), true);
                    ddlproveedores.Items.Add(newItem);
                }
                ddlproveedores.DataBind();
                ddlproveedores.Items.FindByText((e.Row.FindControl("lblProveedor") as Label).Text).Selected = true;
                #endregion

                #region "cargar lista temporadas"
                DropDownList     ddlTemporadas   = (DropDownList)e.Row.FindControl("ddlTemporadas");
                List <Temporada> listaTemporadas = TemporadaLN.getInstance().listaTemporadas(Session["schema"].ToString());
                foreach (Temporada temporada in listaTemporadas)
                {
                    ListItem newItem = new ListItem(temporada.nombre, temporada.id.ToString(), true);
                    ddlTemporadas.Items.Add(newItem);
                }
                ddlTemporadas.DataBind();
                ddlTemporadas.Items.FindByText((e.Row.FindControl("lblTemporada") as Label).Text).Selected = true;
                #endregion

                #region "cargar lista tipos productos"
                DropDownList        ddlTiposProductos   = (DropDownList)e.Row.FindControl("ddlTiposProductos");
                List <TipoProducto> listaTiposProductos = TipoProductoLN.getInstance().listaTiposProductos(Session["schema"].ToString());
                foreach (TipoProducto tipoProducto in listaTiposProductos)
                {
                    ListItem newItem = new ListItem(tipoProducto.nombre, tipoProducto.id.ToString(), true);
                    ddlTiposProductos.Items.Add(newItem);
                }
                ddlTiposProductos.DataBind();
                ddlTiposProductos.Items.FindByText((e.Row.FindControl("lblTipoProducto") as Label).Text).Selected = true;
                #endregion
            }
        }
        // Aceptar actualizar datos
        protected void gridTemporadas_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            GridViewRow row         = gridTemporadas.Rows[e.RowIndex];
            TextBox     txtId       = (TextBox)row.FindControl("txtEditId");
            TextBox     txtAno      = (TextBox)row.FindControl("txtEditAno");
            TextBox     txtEstacion = (TextBox)row.FindControl("txtEditEstacion");
            int         id          = Convert.ToInt32(txtId.Text.Trim());
            string      ano         = txtAno.Text.Trim();
            string      estacion    = txtEstacion.Text.Trim();

            bool retorno = TemporadaLN.getInstance().updateTemporada(id, ano, estacion, Session["schema"].ToString());

            if (retorno)
            {
                Response.Write(@"<script language='javascript'>alert('Temporada actualizada correctamente.');</script>");
                Response.Redirect(Request.Url.AbsoluteUri);
            }
            else
            {
                Response.Write(@"<script language='javascript'>alert('Ya existe esa temporada correctamente.');</script>");
                Response.Redirect(Request.Url.AbsoluteUri);
            }
        }