Cancellation of Attribute Event Handlers
In this topic, you can learn about cancellation of attribute event handlers.
Event handlers can be defined in a graph and in attributes. Graph event handlers and attribute event handlers may be called in a different order, depending on the event:
- For events whose names end with ing (except for the RowSelecting event handler), graph event handlers are called first. You can prevent the execution of attribute event handlers by setting e.Cancel to true.
- For events whose names end with ed, attribute event handlers are called first.
For example, if you need to change the default value set by the PXDefault attribute for a field, you can define a FieldDefaulting event handler in the graph. In this graph event handler, you can assign a different default value and set e.Cancel to true to prevent the execution of the FieldDefaulting event handler defined in the PXDefault attribute (see the following code).
protected virtual void ShipmentLine_Gift_FieldDefaulting( PXCache sender, PXFieldDefaultingEventArgs e) { ShipmentLine line = e.Row as ShipmentLine; if (line == null) return; Product card = GiftCard.Select(); if (card != null && line.ProductID == card.ProductID) { e.NewValue = true; e.Cancel = true; } }