Как реализовать функцию «Отмена» на странице VisualForce - PullRequest
7 голосов
/ 19 января 2012

Я знаю, что это как сохранить запись

<apex:commandButton action="{!save}" value="Save"/>

Я хочу, чтобы кнопка НЕ ​​сохраняла текущую запись (т. Е. Отмена) и переходила к списку сохраненных записей (т. Е. К спискуобъекты для этого типа объекта).

Примерно так ...

<apex:commandButton action="{!cancel}" value="Cancel"/>

Ответы [ 3 ]

9 голосов
/ 19 января 2012

Представлением списка для объекта является ваш базовый URL / трехбуквенный префикс для вашего объекта / o, например:

https://na1.salesforce.com/a0C/o

Таким образом, вы можете просто создать метод действия, который возвращает Pagereferenceс соответствующим URL-адресом и установленным перенаправлением (pr.setRedirect(true)).

Кроме того, вы можете использовать свой контроллер в качестве расширения стандартного контроллера и просто отменить вызов на стандартном контроллере :

// 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"/>

Обратите внимание, что это не обязательно приведет вас к просмотру списка, оно вернет вас к последней странице, которую вы просматривали перед переходом на страницу VF.

7 голосов
/ 21 мая 2012

Вы также должны добавить немедленный тег к кнопке Отмена, чтобы форма не выполняла проверку перед выполнением операции Отмена.

<apex:commandButton action="{!cancel}" immediate="true" value="Cancel"/>

См. http://blogs.developerforce.com/developer-relations/2008/12/using-the-immediate-attribute-on-commandlinks-and-commandbuttons.html

1 голос
/ 10 апреля 2015

При применении операции отмены visualforce вам следует прекратить валидацию формы. Используйте один из методов, чтобы остановить валидацию формы в соответствии с вашими требованиями.

Метод 1:

Использование html-5 в типе документа на странице visualforce означает, что вы должны использовать html-formnovalidate и immediate в кнопке отмены. Например

<apex:commandButton action="{!cancel}" value="Cancel" immediate="true" 
                    html-formnovalidate="formnovalidate" />

Метод 2:

Вы должны использовать immediate ключевое слово, необходимое только для остановки проверки формы. Например

 <apex:commandButton action="{!cancel}" value="Cancel" immediate="true"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...