Event Reference
Complete list of all available widgetEvent types in the Buildocs UI Engine system.
Event Constants
When implementing your runEvent handler, you'll receive one of these event types in the widgetEvent field. All event names are uppercase.
Form Events
| Event Constant | Value | Description |
|---|---|---|
OnInit | ONINIT | Form initialization - triggered when form loads |
OnSave | ONSAVE | Form save - triggered when form save is requested |
OnCancel | ONCANCEL | Form cancel - triggered when user cancels form |
OnRefresh | ONREFRESH | Form refresh - triggered when form needs to refresh |
OnPrint | ONPRINT | Print request - triggered when user initiates print |
OnPrintReturnContents | ONPRINTRETURNCONTENTS | Return printable content from backend |
Widget Events
| Event Constant | Value | Description |
|---|---|---|
OnClick | ONCLICK | Button click - triggered when button is clicked |
OnChange | ONCHANGE | Field change - triggered when field value changes |
OnDelete | ONDELETE | Delete action - triggered when delete is requested |
OnDownload | ONDOWNLOAD | Download action - triggered when download is requested |
Datatable Events - Data Loading
| Event Constant | Value | Description |
|---|---|---|
OnTableLoadData | ONTABLELOADDATA | Load table data - triggered when table needs data |
OnTableEditLoadData | ONTABLEEDITLOADDATA | Load editable table data - for inline editing mode |
Datatable Events - Row Actions
| Event Constant | Value | Description |
|---|---|---|
OnTableRunActionEvent | ONTABLERUNACTIONEVENT | Row action (edit, delete, etc.) - triggered by row action buttons |
OnTableEditRunActionEvent | ONTABLEEDITRUNACTIONEVENT | Editable row action - for inline editing operations |
OnTableSelectRowEvent | ONTABLESELECTROWEVENT | Row selection - triggered when row is selected |
OnRowCheckbox | ONROWCHECKBOX | Checkbox click - triggered when row checkbox is clicked |
Datatable Events - Batch Operations
| Event Constant | Value | Description |
|---|---|---|
OnTableRunBatchActionEvent | ONTABLERUNBATCHACTIONEVENT | Batch action - triggered when operating on multiple rows |
Datatable Events - Record Creation
| Event Constant | Value | Description |
|---|---|---|
OnTableCreateRecordEvent | ONTABLECREATERECORDEVENT | Create record - triggered when "Add New" is clicked in table |
OnLoadNewRecordTemplates | ONLOADNEWRECORDTEMPLATES | Load templates - provide template options for new records |
Folder/Hierarchy Events
| Event Constant | Value | Description |
|---|---|---|
OnFoldersLoadData | ONFOLDERSLOADDATA | Load folder tree data - for hierarchical navigation |
OnFolderCreateRecordEvent | ONFOLDERCREATERECORDEVENT | Create folder - triggered when "New Folder" is clicked |
OnFolderEditRecordEvent | ONFOLDEREDITRECORDEVENT | Edit folder - triggered when folder is edited |
OnFolderShareRecordEvent | ONFOLDERSHARERECORDEVENT | Share folder - triggered when folder sharing is requested |
File Upload Events
| Event Constant | Value | Description |
|---|---|---|
OnFileUpload | ONFILEUPLOAD | File upload - triggered when files are uploaded |
OnFileUploadCreateDocumentEvent | ONFILEUPLOADCREATEDOCUMENT | File upload create document - for datatable file uploads |
Signature/Workflow Events
| Event Constant | Value | Description |
|---|---|---|
OnStartSignProcess | ONSTARTSIGNPROCESS | Start signing - triggered when signature process starts |
OnFinishSignProcess | ONFINISHSIGNPROCESS | Finish signing - triggered when signature process completes |
Advanced Events
| Event Constant | Value | Description |
|---|---|---|
OnDirectRunFormEvent | ONDIRECTRUNFORMEVENT | Direct form event - for custom direct event handling |
OnGetCustomResponse | ONGETCUSTOMRESPONSE | Custom response - return custom response structure |
Usage in Code
C# / .NET
You can create a constants class in your project:
EventHandlerEvents.cs
public class EventHandlerEvents
{
// Form Events
public const string OnCancel = "ONCANCEL";
public const string OnDelete = "ONDELETE";
public const string OnDownload = "ONDOWNLOAD";
public const string OnChange = "ONCHANGE";
public const string OnClick = "ONCLICK";
public const string OnInit = "ONINIT";
public const string OnRefresh = "ONREFRESH";
public const string OnSave = "ONSAVE";
// Datatable Events
public const string OnTableRunActionEvent = "ONTABLERUNACTIONEVENT";
public const string OnTableRunBatchActionEvent = "ONTABLERUNBATCHACTIONEVENT";
public const string OnTableEditRunActionEvent = "ONTABLEEDITRUNACTIONEVENT";
public const string OnTableLoadData = "ONTABLELOADDATA";
public const string OnTableEditLoadData = "ONTABLEEDITLOADDATA";
public const string OnTableCreateRecordEvent = "ONTABLECREATERECORDEVENT";
public const string OnTableSelectRowEvent = "ONTABLESELECTROWEVENT";
// Folder Events
public const string OnFolderCreateRecordEvent = "ONFOLDERCREATERECORDEVENT";
public const string OnFolderEditRecordEvent = "ONFOLDEREDITRECORDEVENT";
public const string OnFolderShareRecordEvent = "ONFOLDERSHARERECORDEVENT";
public const string OnFoldersLoadData = "ONFOLDERSLOADDATA";
// File Upload Events
public const string OnFileUpload = "ONFILEUPLOAD";
public const string OnFileUploadCreateDocumentEvent = "ONFILEUPLOADCREATEDOCUMENT";
// Print Events
public const string OnPrint = "ONPRINT";
public const string OnPrintReturnContents = "ONPRINTRETURNCONTENTS";
// Checkbox Events
public const string OnRowCheckbox = "ONROWCHECKBOX";
// Signature Events
public const string OnStartSignProcess = "ONSTARTSIGNPROCESS";
public const string OnFinishSignProcess = "ONFINISHSIGNPROCESS";
// Template Events
public const string OnLoadNewRecordTemplates = "ONLOADNEWRECORDTEMPLATES";
// Advanced Events
public const string OnDirectRunFormEvent = "ONDIRECTRUNFORMEVENT";
public const string OnGetCustomResponse = "ONGETCUSTOMRESPONSE";
}
Usage Example:
[HttpPost("runevent")]
public async Task<IActionResult> RunEvent([FromBody] JsonElement requestBody)
{
var widgetName = requestBody.GetProperty("widgetName").GetString()?.ToUpper();
var eventType = requestBody.GetProperty("widgetEvent").GetString()?.ToUpper();
// Use constants instead of magic strings
if (widgetName == "SAVEBTN" && eventType == EventHandlerEvents.OnClick)
{
// Handle save button click
}
else if (eventType == EventHandlerEvents.OnTableLoadData)
{
// Handle table data loading
}
else if (eventType == EventHandlerEvents.OnFileUploadCreateDocumentEvent)
{
// Handle file upload
}
return Ok(response);
}
PHP
Create a constants class:
EventHandlerEvents.php
<?php
class EventHandlerEvents
{
// Form Events
const OnCancel = 'ONCANCEL';
const OnDelete = 'ONDELETE';
const OnDownload = 'ONDOWNLOAD';
const OnChange = 'ONCHANGE';
const OnClick = 'ONCLICK';
const OnInit = 'ONINIT';
const OnRefresh = 'ONREFRESH';
const OnSave = 'ONSAVE';
// Datatable Events
const OnTableRunActionEvent = 'ONTABLERUNACTIONEVENT';
const OnTableRunBatchActionEvent = 'ONTABLERUNBATCHACTIONEVENT';
const OnTableEditRunActionEvent = 'ONTABLEEDITRUNACTIONEVENT';
const OnTableLoadData = 'ONTABLELOADDATA';
const OnTableEditLoadData = 'ONTABLEEDITLOADDATA';
const OnTableCreateRecordEvent = 'ONTABLECREATERECORDEVENT';
const OnTableSelectRowEvent = 'ONTABLESELECTROWEVENT';
// Folder Events
const OnFolderCreateRecordEvent = 'ONFOLDERCREATERECORDEVENT';
const OnFolderEditRecordEvent = 'ONFOLDEREDITRECORDEVENT';
const OnFolderShareRecordEvent = 'ONFOLDERSHARERECORDEVENT';
const OnFoldersLoadData = 'ONFOLDERSLOADDATA';
// File Upload Events
const OnFileUpload = 'ONFILEUPLOAD';
const OnFileUploadCreateDocumentEvent = 'ONFILEUPLOADCREATEDOCUMENT';
// Print Events
const OnPrint = 'ONPRINT';
const OnPrintReturnContents = 'ONPRINTRETURNCONTENTS';
// Checkbox Events
const OnRowCheckbox = 'ONROWCHECKBOX';
// Signature Events
const OnStartSignProcess = 'ONSTARTSIGNPROCESS';
const OnFinishSignProcess = 'ONFINISHSIGNPROCESS';
// Template Events
const OnLoadNewRecordTemplates = 'ONLOADNEWRECORDTEMPLATES';
// Advanced Events
const OnDirectRunFormEvent = 'ONDIRECTRUNFORMEVENT';
const OnGetCustomResponse = 'ONGETCUSTOMRESPONSE';
}
Usage Example:
public function runEvent(Request $request) {
$requestData = $request->json()->all();
$widgetName = strtoupper($requestData['widgetName'] ?? '');
$eventType = strtoupper($requestData['widgetEvent'] ?? '');
// Use constants instead of magic strings
if ($widgetName === 'SAVEBTN' && $eventType === EventHandlerEvents::OnClick) {
// Handle save button click
}
elseif ($eventType === EventHandlerEvents::OnTableLoadData) {
// Handle table data loading
}
elseif ($eventType === EventHandlerEvents::OnFileUploadCreateDocumentEvent) {
// Handle file upload
}
return response()->json($response);
}
Event Categorization
User Interaction Events
Events triggered directly by user actions:
OnClick,OnChange,OnCancel,OnDelete,OnDownload
Data Loading Events
Events that require loading data:
OnInit,OnTableLoadData,OnTableEditLoadData,OnFoldersLoadData
Data Modification Events
Events that modify data:
OnSave,OnTableRunActionEvent,OnTableEditRunActionEvent,OnTableRunBatchActionEvent
File Operations
Events related to file handling:
OnFileUpload,OnFileUploadCreateDocumentEvent,OnDownload
Workflow Events
Events for business processes:
OnStartSignProcess,OnFinishSignProcess
Best Practices
- Use Constants - Always use constants instead of hardcoded strings
- Case Insensitive - Convert event types to uppercase for comparison
- Event Grouping - Group related events in your handler for better organization
- Validation - Always validate that required data is present for each event type
- Error Handling - Implement proper error handling for each event type
Related Documentation
- Button Events - OnClick event examples
- Field Events - OnChange event examples
- Datatable Events - All table event examples
- Form Lifecycle - OnInit, OnSave event examples
- File Uploads - File upload event examples