public void BindGridServicios(int currentPage)
        {
            try
            {
                SisPackController.AdministrarGrillas.Configurar(dtgServiciosAgrupados, "ServicioTransporteID", this.CantidadOpciones);

                DsServiciosAgrupados ds       = new DsServiciosAgrupados();
                DsServiciosAgrupados dsNuevos = new DsServiciosAgrupados();

                if (Session["DsServiciosAgrupados"] != null)
                {
                    //if (ds!=(DsServiciosAgrupados)Session["DsServiciosAgrupados"])
                    ds = (DsServiciosAgrupados)Session["DsServiciosAgrupados"];                          //esto es para que agregue
                }
                for (int i = 0; i <= ddlServicios.Items.Count - 1; i++)
                {                //recorro la lista de servicios
                    if (ddlServicios.Items[i].Selected)
                    {
                        DsServiciosAgrupados.DatosRow dr      = ds.Datos.NewDatosRow();
                        DsServiciosAgrupados.DatosRow drNuevo = dsNuevos.Datos.NewDatosRow();
                        dr["ServicioTransporteDescrip"]      = ddlServicios.Items[i].Value;
                        drNuevo["ServicioTransporteDescrip"] = ddlServicios.Items[i].Value;
                        //asigno el id del servicio y la descripcion
                        dr["ServicioTransporteDescrip"]      = ddlServicios.Items[i].Text;
                        drNuevo["ServicioTransporteDescrip"] = ddlServicios.Items[i].Text;
                        ds.Datos.Rows.Add(dr);                        //agrega los nuevos
                        dsNuevos.Datos.Rows.Add(drNuevo);
                    }
                }
                Session["DsServiciosAgrupados"]       = ds;          //lo asigno a la sesion
                Session["DsServiciosNuevosAgrupados"] = dsNuevos;    //solo contiene los que se agregaron en esta sesion, por si los quiere eliminar
                dtgServiciosAgrupados.DataSource      = ds.Datos;
                dtgServiciosAgrupados.PageSize        = 20;
                if (currentPage > dtgServiciosAgrupados.PageSize)
                {
                    currentPage = 0;
                }

                dtgServiciosAgrupados.CurrentPageIndex = currentPage;
                dtgServiciosAgrupados.DataBind();
                //guarda los cambios en la base

                Guardar();
                LlenarComboServicio();
            }
            catch (Exception ex)
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
        private void butCancelar_Click(object sender, System.EventArgs e)
        {
            if ((agrupacionID != 0) && (txtAgrupacionID.Text == ""))        //modo alta de nuevos serv
            {
                //borrar la que ya se agregó
                IAgrupacionesServicios agrup = AgrupacionesServiciosFactory.GetAgrupacionesServicios();
                agrup.AgrupacionID = agrupacionID;
                agrup.Eliminar();
            }
            else if ((agrupacionID != 0) && (txtAgrupacionID.Text != ""))        //agrega nuevos a una agrupacion existente y cancela
            {
                DsServiciosAgrupados            dsBaseDatos = new DsServiciosAgrupados();
                DsServiciosAgrupados            dsSession   = new DsServiciosAgrupados();
                DsServiciosAgrupados.DatosRow[] drBaseDatos = null;
                DsServiciosAgrupados.DatosRow   drSession   = null;

                IServiciosAgrupados servicios = ServiciosAgrupadosFactory.GetServiciosAgrupadosFactory();
                servicios.AgrupacionID = agrupacionID;
                IAgrupacionesServicios agrupacion = AgrupacionesServiciosFactory.GetAgrupacionesServicios();
                agrupacion.AgrupacionID = servicios.AgrupacionID;

                if (Session ["DsServiciosNuevosAgrupados"] != null)              //solo si ha agregado algo en la ultima sesion
                {
                    dsSession = (DsServiciosAgrupados)Session ["DsServiciosNuevosAgrupados"];

                    for (int j = 0; j < dsSession.Datos.Count; j++)
                    {
                        //elimino los servicios agregados en la ultima sesion si presiono cancelar
                        //y habia agregado servicios, si no agrego nada sale

                        drSession   = (DsServiciosAgrupados.DatosRow)dsSession.Datos.Rows[j];                       //copio lo que tengo en la sesion
                        dsBaseDatos = (DsServiciosAgrupados)agrupacion.ConsultarServicios();                        //trae el detalle de lo guardado

                        //busco en el detalle el que agrego en esta session y lo elimino
                        drBaseDatos = (DsServiciosAgrupados.DatosRow[])dsBaseDatos.Datos.Select("ServicioTransporteDescrip = '" + drSession.ServicioTransporteDescrip + "'");
                        if (drBaseDatos.Length > 0)                      //agrego algo?
                        {
                            servicios.ServicioAgrupadoID = drBaseDatos[0].ServicioAgrupadoID;
                            servicios.Eliminar();
                        }
                    }
                }
            }
            Session ["DsServiciosNuevosAgrupados"] = null;
            agrupacionID = 0;
            Response.Redirect("AgrupacionesServiciosConsul.aspx");
        }