Saltar al contenido

cómo obtener una lista de selección de todos los valores en el controlador apex

Bienvenido a proyecto on line, en este sitio encontrarás la solucíon que buscabas.

Solución:

Este es un requisito muy común y tenemos algunos buenos blogs desde donde puede obtener el código directamente.

  • Blog de desarrolladores de Salesforce: uso de Dynamic Apex para recuperar valores de listas de selección

Código de ejemplo:

public static List getPicklistValues(String ObjectApi_name,String Field_name) 

  List lstPickvals=new List();
  Schema.SObjectType targetType = Schema.getGlobalDescribe().get(ObjectApi_name);//From the Object Api name retrieving the SObject
    Sobject Object_name = targetType.newSObject();
  Schema.sObjectType sobject_type = Object_name.getSObjectType(); //grab the sobject that was passed
    Schema.DescribeSObjectResult sobject_describe = sobject_type.getDescribe(); //describe the sobject
    Map field_map = sobject_describe.fields.getMap(); //get a map of fields for the passed sobject
    List pick_list_values = field_map.get(Field_name).getDescribe().getPickListValues(); //grab the list of picklist values for the passed field on the sobject
    for (Schema.PicklistEntry a : pick_list_values)  //for all values in the picklist list
      lstPickvals.add(a.getValue());//add the value  to our final list
   

  return lstPickvals;

Este es el método de utilidad que utilizo para obtener todos los valores de la lista de selección para un objeto y un campo.

En su caso, necesita la opción de selección para permitir que el usuario seleccione si usa en la página de Visualforce

global static list getPicklistValues(SObject obj, String fld)
  list options = new list();
  // Get the object type of the SObject.
  Schema.sObjectType objType = obj.getSObjectType(); 
  // Describe the SObject using its object type.
  Schema.DescribeSObjectResult objDescribe = objType.getDescribe();       
  // Get a map of fields for the SObject
  map fieldMap = objDescribe.fields.getMap(); 
  // Get the list of picklist values for this field.
  list values =
     fieldMap.get(fld).getDescribe().getPickListValues();
  // Add these values to the selectoption list.
  for (Schema.PicklistEntry a : values)
   
     options.add(new SelectOption(a.getLabel(), a.getValue())); 
  
  return options;
 
 

Creo que esto puede funcionar. Realicé algunas pruebas en un campo estándar y pude ver los valores a través de la consola.

Schema.DescribeFieldResult studentStatus = Student__c.Student_Status__c.getDescribe();

List studentStatusValues = studentStatus.getPicklistValues();

valoraciones y reseñas

Te invitamos a asentar nuestra publicación exponiendo un comentario o dejando una valoración te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *