DropDownBox: add Search in Embedded Components topic#8854
DropDownBox: add Search in Embedded Components topic#8854vladaskorohodova wants to merge 9 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new “Search in Embedded Components” documentation section for DropDownBox, describing how to implement search when embedding DataGrid (flat data) or TreeList (lookup display-value search). It also modernizes parts of the existing “Synchronize with the Embedded Element” topic code samples.
Changes:
- Added an overview article explaining shared configuration and the differences between DataGrid (
searchValue/searchExpr) and TreeList (lookup-drivenfilter) search approaches. - Added two new how-to topics: one for embedded DataGrid search and one for embedded TreeList search (lookup scenario).
- Updated the existing synchronization topic’s wording and refreshed Angular/Vue/React code samples.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 7 comments.
| File | Description |
|---|---|
| concepts/05 UI Components/DropDownBox/20 Search in Embedded Components/00 Search in Embedded Components.md | New overview article comparing search approaches and shared configuration. |
| concepts/05 UI Components/DropDownBox/20 Search in Embedded Components/05 DataGrid.md | New DataGrid-focused how-to with multi-framework code snippets. |
| concepts/05 UI Components/DropDownBox/20 Search in Embedded Components/10 TreeList.md | New TreeList-focused how-to for lookup display-value search. |
| concepts/05 UI Components/DropDownBox/15 Synchronize with the Embedded Element.md | Refined introductory text + updated framework code samples. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
| @@ -0,0 +1,56 @@ | |||
| DropDownBox does not have built-in search. To add search functionality, embed a DataGrid or TreeList and implement filtering manually. The approach depends on whether you search a **regular field** or a **lookup column display value**. | |||
There was a problem hiding this comment.
| DropDownBox does not have built-in search. To add search functionality, embed a DataGrid or TreeList and implement filtering manually. The approach depends on whether you search a **regular field** or a **lookup column display value**. | |
| When using a DropDownBox with an embedded DataGrid or TreeList, you can turn the component's input field into a search/filter box. Obtain the input field text and construct a filter condition for the dropdown control. Implementation details depend on whether you search a field that holds actual values or lookup IDs. |
There was a problem hiding this comment.
I would like to keep the original for these reasons:
- "lookup IDs" is incorrect. The lookup column scenario is specifically about searching by display value (e.g. an employee name). IDs is what filter resolves to internally
- "a field that holds actual values" kinda doesn't mean anything because all fields hold actual values... I personally think it's more vague than a "regular field vs. lookup column"
- The "DropDownBox does not have built-in search" sentence is crucial for me. It tells the reader why we are doing this thing in the first place. So your rewrite just loses context
- IMHO I wouldn't put implementation details in the intro. The steps below cover the whole implementation thing and I personally think the job of the intro just to orient people on what they should choose. That's why I made a comparison table.
| <table class="dx-table"> | ||
| <tr> | ||
| <th>Aspect</th> | ||
| <th>Search by regular field (no lookup column involved)</th> |
There was a problem hiding this comment.
| <th>Search by regular field (no lookup column involved)</th> | |
| <th>Search field contains values</th> |
There was a problem hiding this comment.
See my first comment
| <tr> | ||
| <th>Aspect</th> | ||
| <th>Search by regular field (no lookup column involved)</th> | ||
| <th>Search by lookup column display value (lookup involved)</th> |
There was a problem hiding this comment.
| <th>Search by lookup column display value (lookup involved)</th> | |
| <th>Search field contains lookup IDs</th> |
There was a problem hiding this comment.
See my first comment
|
|
||
| ### 6) Detect Whether the User Is Searching (`isSearchIncomplete`) | ||
|
|
||
| The `isSearchIncomplete` function returns `true` if the user has changed the input text and a new search must be applied (that is, `text` differs from the current `displayValue`): |
There was a problem hiding this comment.
| The `isSearchIncomplete` function returns `true` if the user has changed the input text and a new search must be applied (that is, `text` differs from the current `displayValue`): | |
| The `isSearchIncomplete` function returns `true` if the user has changed the input text and the component must execute another search operation: |
There was a problem hiding this comment.
Same comment
|
|
||
| ### 8) Reset State in `onClosed` | ||
|
|
||
| When the popup closes, DropDownBox [`onClosed`](/api-reference/10%20UI%20Components/dxDropDownBox/1%20Configuration/onClosed.md '/Documentation/ApiReference/UI_Components/dxDropDownBox/Configuration/#onClosed') restores consistent state if the user typed something but did not confirm a selection. The search state is cleared by calling `dataSource.filter(null)`. |
There was a problem hiding this comment.
| When the popup closes, DropDownBox [`onClosed`](/api-reference/10%20UI%20Components/dxDropDownBox/1%20Configuration/onClosed.md '/Documentation/ApiReference/UI_Components/dxDropDownBox/Configuration/#onClosed') restores consistent state if the user typed something but did not confirm a selection. The search state is cleared by calling `dataSource.filter(null)`. | |
| When the popup closes, the DropDownBox raises its [`onClosed`](/api-reference/10%20UI%20Components/dxDropDownBox/1%20Configuration/onClosed.md '/Documentation/ApiReference/UI_Components/dxDropDownBox/Configuration/#onClosed') event. Process situations when the user typed something but did not confirm a selection. |
There was a problem hiding this comment.
Same comment
Co-authored-by: Vladimir Abadzhev <vladimira@devexpress.com>
No description provided.