protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
    {
        // we only process commands with a datasource (our image buttons)
        if (e.CommandSource == null)
        {
            return;
        }
        string typeOfControl = e.CommandSource.GetType().ToString();

        if (typeOfControl.Equals("System.Web.UI.WebControls.ImageButton"))
        {
            int         id   = 0;
            ImageButton imgb = (ImageButton)e.CommandSource;
            if (imgb.ID != "New" && imgb.ID != "Exit")
            {
                id = (int)e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex][e.Item.OwnerTableView.DataKeyNames[0]];
            }
            switch (imgb.ID)
            {
            case "Select":
                break;

            case "Edit":
                break;

            case "Delete":
                try
                {
                    Dispositivo dispositivo = CntLainsaSci.GetDispositivo(id, ctx);
                    if (dispositivo.Revisiones != null)
                    {
                        if (dispositivo.Revisiones.Count > 0)
                        {
                            ControlDeError(new Exception(string.Format("No se puede borrar el dispositivo con ID = {0}.\nTiene revisiones asignadas.", dispositivo.DispositivoId)));
                            break;
                        }
                    }

                    CntLainsaSci.BorrarDispositivo(dispositivo, ctx);
                    CntLainsaSci.CTXGuardar(ctx);
                    RefreshGrid(true);
                }
                catch (Exception ex)
                {
                    ControlDeError(ex);
                }
                break;
            }
        }
    }