Occurs when a field in a DataWindow control has been modified and loses focus (for example, the user presses Enter, the Tab key, or an arrow key or clicks the mouse on another field within the DataWindow). It occurs before the change is applied to the item. ItemChanged can also occur when the AcceptText or Update method is called for a DataWindow control or DataStore object.

PowerBuilder event information

Event ID: pbm_dwnitemchange




Long by value. The number of the row containing the item whose value is being changed.


DWObject by value. A reference to the column containing the item whose value has been changed. Dwo is a reference to the column control, not the name of the column.


String by value. The new data the user has specified for the item.

Return Values

Set the return code to affect the outcome of the event:

0 -- (Default) Accept the data value

1 -- Reject the data value and do not allow focus to change

2 -- Reject the data value but allow the focus to change

For information on setting the return code in a particular environment, see About return values for DataWindow events.


The ItemChanged event does not occur when the DataWindow control itself loses focus. If the user clicks on an Update or Close button, you will need to write a script that calls AcceptText to see if a changed value should be accepted before the button's action occurs. For information on the right way to do this, see AcceptText.

Obsolete techniques in PowerBuilder

Information formerly provided by the GetText method is available in the data argument.

Instead of calling SetActionCode, use a RETURN statement with a return code.


This example uses the ItemChanged event to provide additional validation; if the column is emp_name, it checks that only letters were entered in the column:

IF = "Emp_name" THEN
      IF NOT Match(Data, "^[A-za-z]$") THEN
         RETURN 2
      END IF

See also