La vista de lista para un objeto es su URL base/el prefijo de 3 letras para su/o de objeto, por ejemplo:
https://na1.salesforce.com/a0C/o
Por lo que podría simplemente crear un método de acción que devuelva Pagereference
con la URL apropiada y establecerse para redirigir (pr.setRedirect(true)
).
Como alternativa, puede utilizar el controlador como una extensión a un controlador estándar, y justo call cancel on the standard controller:
// controller extension
public class TimeSheetExtension
{
ApexPages.standardController m_sc = null;
public TimeSheetExtension(ApexPages.standardController sc)
{
m_sc = sc;
}
public PageReference doCancel()
{
return m_sc.cancel();
}
}
// page
<apex:commandButton action="{!doCancel}" value="Cancel"/>
Tenga en cuenta que esto no significa necesariamente lo lleve a la vista de lista, él se puede volver a la última página que estabas viendo antes de ir a la página de VF.
Siempre trato de usar los métodos del controlador, ya que teóricamente su protegido de los cambios de formato de URL. –
Todos los ID de objeto para los registros de ese objeto tendrán las mismas 3 letras al comienzo, pero como dice Jeremy, es mejor usar las acciones estándar siempre que sea posible. Debería poder cambiar su controlador a una extensión simplemente agregando un parámetro de controlador estándar al constructor, y modificando la etiqueta '' para que tenga 'standardController =" MyObject__c "extensions =" MyCustomController "' –
Esto no funciona cuando cancela el modo ajax devolviendo nulo. Guardo los datos inválidos en el campo del año y el campo me dan error. cuando se cancela, vuelve a la vista de solo lectura pero los datos se cambian a datos no válidos.Sin embargo, al actualizar la página, los datos no válidos no están allí y se muestran los datos anteriores. – powerfade917