środa, 11 czerwca 2014

Jak powrócić do poprzedniej strony?

Jak to zrobić, aby klikając w przycisk „Powrót” aplikacja przenosiła nas do poprzedniej strony (do strony z której zostaliśmy przekierowani na aktualną)? APEX nie posiada Substitution String takiego jak &APP_PREV_PAGE_ID., dlatego jako developerzy sami powinniśmy o to zadbać i taki mechanizm stworzyć … : )
W niniejszym artykule zostały zaprezentowane dwa rozwiązania dotyczące powyższego problemu.

Jako ciekawostkę chciałbym zaznaczyć, iż pierwszy sposób rozwiązania problemu pojawił się w pytaniu na egzaminie Oracle APEX Certified Expert.


Podejście 1 - polega na utworzeniu dwóch Application Items (LAST_PAGE i CURRENT_PAGE), przechowujące odpowiednie ID stron.
Do zapisywania wartości w LAST_PAGE i CURRENT_PAGE skorzystamy z Application Computations, która będzie uruchamiana w momencie Before Header.

1. Tworzymy 2 Application Items o nazwie LAST_PAGE i CURRENT_PAGE
(Shared Components -> Application Items)
2. Application Computations na wcześniej utworzony LAST_PAGE
(Shared Components -> Application Computations)
a)Computation Point – Before Header
b)Computation Type - PL/SQL Function Body, wprowadzając poniższy kod PL/SQL:

begin
:last_page := nvl(:current_page, :app_page_id);
:current_page := :app_page_id;
return :last_page;
end;

3. Edytujemy wybrany przycisk i ustawiamy wartość LAST_PAGE atrybucie Page.


Podejście 2 - Wykorzystanie javascript:history.go(-1);

1. Edytujemy wybrany przycisk i ustawiamy tak jak na obrazku poniżej

Osobiście korzystam ze sposobu nr.1, który jest również polecany przez developerów ze społeczności Oracle APEX. Natomiast nawiązując do sposobu nr.2, to nie natknąłem się na niegodności związane z wykorzystywaniem tego sposobu (oprócz irytującego przenoszenia do strony Edit Page po zapisaniu zmian i kliknięciu w przycisk z history.go(-1). ). Niemniej jednak - zachęcam do dzielenia się opinią oraz własnym doświadczeniem na temat powyższych rozwiązań, zostawiając wiadomość w komentarzu.

Brak komentarzy:

Prześlij komentarz