protected void gvLocalidadesAgrupadas_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            ICodigoPostalAgrupacionLocalidad tope = (from t in codigoPostalAgrupacion.LstLocalidades
                                                     where t.LocalidadID == Convert.ToInt32(e.Keys["LocalidadID"].ToString()) &&
                                                     t.CodigoPostalID == Convert.ToInt32(e.Keys["CodigoPostalID"].ToString())
                                                     select t).FirstOrDefault();

            if (tope != null)
            {
                if (tope.CodigoPostalAgrupacionRetiroEntregaLocalidadID != null)
                {
                    codigoPostalAgrupacion.LstLocalidadesEliminadas.Add(CodigoPostalAgrupacionLocalidadFactory.GetCodigoPostalAgrupacionLocalidad(null, null, tope.LocalidadID, tope.CodigoPostalID, tope.LocalidadDescrip, tope.CodigoPostal, tope.Calle, tope.Baja, tope.RegistroNuevo, tope.CodigoPostalAgrupacionRetiroEntregaLocalidadID, tope.CodigoPostalAgrupacionRetiroEntregaID));
                }
                codigoPostalAgrupacion.LstLocalidades.Remove(tope);
            }

            dsLocalidades = (DsLocalidadesCodigosPostales)Session["DsLocalidadesCodigosPostalesRetiroEntrega"];
            dsLocalidades.Datos.AddDatosRow((int)tope.LocalidadID, tope.LocalidadDescrip, tope.Calle, (int)tope.CodigoPostalID, tope.CodigoPostal, false);
            SisPackController.AdministrarGrillas.Configurar(gvLocalidades, 400);
            gvLocalidades.DataSource = dsLocalidades;
            gvLocalidades.DataBind();
            Session["DsLocalidadesCodigosPostalesRetiroEntrega"] = dsLocalidades;
            // Vuelvo a cargar la grilla
            BindGrid();
        }
        protected void btnAgregarTope_Click(object sender, EventArgs e)
        {
            try
            {
                // Reviso si los datos son válidos
                foreach (GridViewRow item in gvLocalidades.Rows)
                {
                    CheckBox chk = (CheckBox)item.FindControl("chkSeleccionar");
                    if (chk.Checked)
                    {
                        if ((from t in codigoPostalAgrupacion.LstLocalidades
                             where t.LocalidadID == Utiles.Validaciones.obtieneEntero(item.Cells[0].Text) &&
                             t.CodigoPostalID == Utiles.Validaciones.obtieneEntero(item.Cells[1].Text)
                             select t).FirstOrDefault() != null)
                        {
                            throw new Exception("La localidad " + item.Cells[2].Text + " ya existe");
                        }
                        string localidadDescrip = item.Cells[2].Text.Replace(" ", "");
                        int    localidadID      = Utiles.Validaciones.obtieneEntero(item.Cells[0].Text);
                        int    codigoPostalID   = Utiles.Validaciones.obtieneEntero(item.Cells[1].Text);
                        string codigoPostal     = item.Cells[3].Text == " " ? string.Empty : item.Cells[3].Text;
                        string calle            = item.Cells[4].Text == " " ? string.Empty : item.Cells[4].Text.Replace(" ", "");
                        codigoPostalAgrupacion.LstLocalidades.Add(CodigoPostalAgrupacionLocalidadFactory.GetCodigoPostalAgrupacionLocalidad(null, null, localidadID, codigoPostalID, localidadDescrip, codigoPostal, calle, false, true, null, CodigoPostalAgrupacionRetiroEntregaID));
                    }
                }

                // Guardo los datos en memoria
                Session["CodigoPostalAgrupacionRetiroEntrega"] = codigoPostalAgrupacion;

                // Vuelvo a cargar la grilla
                BindGrid();
                BindGridLocalidades();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }