| name | bulk-widget-updates |
| description | Bulk Widget Property Updates — SHOW WIDGETS discovery and UPDATE WIDGETS dry-run/apply across pages and snippets |
| compatibility | opencode |
MDL bulk widget editor — discover and modify widget properties across pages and snippets in bulk.
> EXPERIMENTAL commands for bulk widget discovery and property updates. Covers SHOW WIDGETS filtering, UPDATE WIDGETS dry-run and apply, property value types, and known limitations.
Load when:
- User wants to find all widgets of a given type across a module
- User wants to change a property on many widgets at once (e.g., hide labels on all comboboxes)
- User needs a bulk-update workflow with preview before applying
EXPERIMENTAL: These commands are an untested proof-of-concept. Always use dry run first and backup your project before applying changes.
Widget commands require a full catalog build:
refresh catalog full;
<show_widgets>
show widgets;
show widgets in MyModule;
show widgets where widgettype like '%combobox%';
show widgets where Name = 'myGrid';
show widgets where widgettype like '%DataGrid%' and Name like '%Overview%' in MyModule;
Output Columns
| Column | Description |
|---|
| NAME | Widget name (may be auto-generated) |
| WIDGET TYPE | Full widget type ID (e.g., com.mendix.widget.web.combobox.Combobox) |
| CONTAINER | Page or snippet qualified name |
| MODULE | Module name |
Common Widget Type Patterns
| Pattern | Matches |
|---|
%combobox% | ComboBox widgets |
%datagrid% | DataGrid2 and related widgets |
%textbox% | TextBox widgets |
%dropdown% | DropDown widgets |
%gallery% | Gallery widgets |
</show_widgets>
<update_widgets>
update widgets
set 'propertyName' = value [, 'propertyName' = value ...]
where condition [and condition ...]
[in module]
[dry run];
Dry Run (Preview Changes)
Always preview changes first:
update widgets
set 'showLabel' = false
where widgettype like '%combobox%'
dry run;
Output shows:
found 5 widget(s) in 3 container(s) matching the criteria
[dry run] The following changes would be made:
Would set 'showLabel' = false on combobox1 (combobox) in MyModule.OrderForm
Would set 'showLabel' = false on combobox2 (combobox) in MyModule.CustomerPage
...
[dry run] Would update 5 widget(s)
run without dry run to apply changes.
Apply Changes
Remove dry run to apply:
update widgets
set 'showLabel' = false
where widgettype like '%combobox%'
in MyModule;
Property Value Types
| Type | Examples |
|---|
| String | 'contains', 'above' |
| Number | 4, 100, 3.14 |
| Boolean | true, false |
| Null | null |
Examples
update widgets
set 'showLabel' = false
where widgettype like '%combobox%';
update widgets
set 'showLabel' = false, 'labelWidth' = 4
where widgettype like '%textbox%'
in MyModule;
update widgets
set 'filterMode' = 'contains'
where widgettype like '%DatagridTextFilter%';
</update_widgets>
<important_notes>
Known Limitations (Experimental)
UPDATE WIDGETS functionality is not fully implemented.
- The DRY RUN mode shows which widgets would be matched
- Actual property updates require additional implementation work
- Use SHOW WIDGETS for discovery, then manually update properties in Studio Pro
After Making Changes
-
Refresh the catalog to see updated data:
refresh catalog full force;
-
Open the project in Studio Pro to verify changes
Supported Properties
Only primitive properties (string, number, boolean) are supported:
showLabel, labelWidth, placeholder
filterMode, defaultValue
- Widget-specific configuration properties
NOT supported:
- DataSource properties
- Action properties (onClick, etc.)
- Nested object properties
- Expression properties
Finding Property Names
To find the correct property names:
- Create a widget in Studio Pro
- Use
describe page Module.PageName to see widget structure
- Or check the Mendix widget documentation
</important_notes>
<workflow_example>
refresh catalog full;
show widgets where widgettype like '%combobox%';
update widgets set 'showLabel' = false where widgettype like '%combobox%' dry run;
update widgets set 'showLabel' = false where widgettype like '%combobox%';
refresh catalog full force;
show widgets where widgettype like '%combobox%';
</workflow_example>
<output_rules>Output MDL code only in code blocks. Keep explanations concise.</output_rules>