diff --git a/packages/web/src/datagrid/DataFilterControl.svelte b/packages/web/src/datagrid/DataFilterControl.svelte
index 33b1d88fc..cd907f82f 100644
--- a/packages/web/src/datagrid/DataFilterControl.svelte
+++ b/packages/web/src/datagrid/DataFilterControl.svelte
@@ -19,15 +19,14 @@
export let setFilter;
export let showResizeSplitter = false;
export let onFocusGrid;
+ export let onGetReference;
let value;
let isError;
let isOk;
let domInput;
- export function focus() {
- domInput.focus();
- }
+ $: if (onGetReference && domInput) onGetReference(domInput);
function openFilterWindow(condition1) {
showModal(SetFilterModal, { condition1, filterType, onFilter: setFilter });
@@ -193,6 +192,7 @@
diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte
index 8d019d287..9647c13c5 100644
--- a/packages/web/src/datagrid/DataGridCore.svelte
+++ b/packages/web/src/datagrid/DataGridCore.svelte
@@ -290,7 +290,7 @@
let shiftDragStartCell = nullCell;
let autofillDragStartCell = nullCell;
let autofillSelectedCells = emptyCellArray;
- const domFilterControls = {};
+ const domFilterControlsRef = createRef({});
export function refresh() {
display.reload();
@@ -991,7 +991,7 @@
function focusFilterEditor(columnRealIndex) {
let modelIndex = columnSizes.realToModel(columnRealIndex);
- const domFilter = domFilterControls[columns[modelIndex].uniqueName];
+ const domFilter = domFilterControlsRef.get()[columns[modelIndex].uniqueName];
if (domFilter) domFilter.focus();
return ['filter', columnRealIndex];
}
@@ -1030,7 +1030,7 @@
{:else if grider.errors && grider.errors.length > 0}
{#each grider.errors as err}
-
+
{/each}
{:else}
@@ -1113,7 +1113,7 @@
style={`width:${col.width}px; min-width:${col.width}px; max-width:${col.width}px`}
>
(domFilterControlsRef.get()[col.uniqueName] = value)}
filterType={getFilterType(col.dataType)}
filter={display.getFilter(col.uniqueName)}
setFilter={value => display.setFilter(col.uniqueName, value)}