Jorge Rimblas
Senior APEX Consultant
Custom Development, Cloud, Forms Modernization,
EBS Extensions
Consulting, Coaching, and Team Augmentation
Maintenance and Enhancement Service for apps built with APEX
Committed to APEX Innovation & Best Practices
Internationally recognized staff that includes Oracle ACEs
Browser events
Dynamic Action Structure
Demos
AJAX
Advanced Dynamic Actions
(this means changing the HTML)
(this means changing the CSS and Styles)
Client Side
Server Side
4.2
5.0
19.1
APEX
4.2
APEX
5.x
APEX
19.x
Since APEX 5
More about this later
[Optional Client Side Condition]
[Affected Elements]
[Affected Elements]
[Optional Client Side Condition]
APEX view
When will the Dynamic Action execute?
On click
On item (data) change
On Focus
On Page Load
On (any) browser event
etc
Where will the event happen?
Where will the event happen?
Item(s)
Button
Region
Column(s)
jQuery Selector
JavaScript Expression
APEX 5.1
P11
p20
p20
Sometimes a good alternative to Hide & Show
P25
Condition
Condition
P30
$s("{ITEM}", "{VALUE}");
// Set to today
$s("P30_LOG_DATE", "&P30_TODAY.");
// Clear date
$s("P30_LOG_DATE", "");
p40
Event
Set Value action
this.triggeringElement.value
.toUpperCase()
.replace(/\s+/g, '_')
.substring(0, 20);
p110
APEX 4.2
APEX 5.0
APEX 5.1 - 19.1
and beyond...
asynchronous JavaScript and XML
group of interrelated Web development techniques used on the client-side to create asynchronous Web applications
Wikipedia: en.wikipedia.org/wiki/Ajax_(programming)
Client Side
Server Side
AJAX
JavaScript
SQL
PL/SQL
It's easy!
p215
insert into app_user_roles
( username
, role_key)
values
( :P215_USERNAME
, :P215_ROLE_KEY);
delete
from app_user_roles
where id = :P215_UR_ID;
this.triggeringElement.getAttribute("data-id");
this.triggeringElement.dataset.id
this.triggeringElement.dataset.id
// data-id="{value}"
this.triggeringElement.dataset.id
// data-active="YES"
this.triggeringElement.dataset.active
// data-selected="YES"
this.triggeringElement.dataset.selected
// data-lineID="123"
this.triggeringElement.dataset.lineID
// data-rownum="2"
this.triggeringElement.dataset.rownum
this.triggeringElement
this.browserEvent
this.data
Available inside the DA JavaScript
var el = this.triggeringElement;
var $el = $(this.triggeringElement);
this.triggeringElement.value
.toUpperCase()
.replace(/\s+/g, '_')
.substring(0, 20);
APEX 4.2
APEX 5.0, 5.1
APEX 18.x, 19.1
Easy Prototyping with triggeringElement
( rimblas.com/blog/2014/06/easy-prototyping-when-using-apex-da-triggeringelement/ )
Use Code INS20 for a $100 discount
Jorge Rimblas