Jorge Rimblas
Senior APEX Consultant
Age: 13 years!
Staff: 80+ employees
68 consultants/developers
2015: 60% Growth
APEX Solutions: 12 Years!
Largest APEX practice in North America
Oracle Center of Excellence
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
APEX
4.2
APEX
5.0
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
jQuery Selector
JavaScript Expression
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", "");
Equivalent to $s API
P40
Event
Set Value action
this.triggeringElement.value
.toUpperCase()
.replace(/\s+/g, '_')
.substring(0, 20);
P110
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
Easy Prototyping with triggeringElement
( rimblas.com/blog/2014/06/easy-prototyping-when-using-apex-da-triggeringelement/ )
Jorge Rimblas