File tree Expand file tree Collapse file tree 2 files changed +62
-10
lines changed
e2e/testcafe-devextreme/tests/dataGrid/common/stateStoring
packages/devextreme/js/__internal/grids/grid_core/state_storing Expand file tree Collapse file tree 2 files changed +62
-10
lines changed Original file line number Diff line number Diff line change @@ -142,3 +142,53 @@ test('DataGrid - Cannot read properties of undefined (reading \'done\') error oc
142142} ) . before ( async ( ) => {
143143 await createWidget ( 'dxDataGrid' , { ...dataGridConfig } ) ;
144144} ) ;
145+
146+ test ( 'DataGrid - The filterType property is reset if client state storing contains no filtering settings (T1296608)' , async ( t ) => {
147+ const dataGrid = new DataGrid ( '#container' ) ;
148+
149+ // assert
150+ await t
151+ . expect ( dataGrid . isReady ( ) )
152+ . ok ( )
153+ . expect ( dataGrid . getDataCell ( 0 , 0 ) . element ( ) . innerText )
154+ . eql ( '1' ) ;
155+ } ) . before ( async ( ) => {
156+ await createWidget ( 'dxDataGrid' , {
157+ dataSource : [
158+ { id : 0 , textID : '0' , text : 'item 0' } ,
159+ { id : 1 , textID : '1' , text : 'item 1' } ,
160+ ] ,
161+ keyExpr : 'id' ,
162+ filterSyncEnabled : true ,
163+ columns : [
164+ {
165+ dataField : 'id' ,
166+ caption : 'ID' ,
167+ dataType : 'string' ,
168+ } ,
169+ {
170+ dataField : 'textID' ,
171+ filterType : 'exclude' ,
172+ name : 'textID' ,
173+ dataType : 'string' ,
174+ filterValues : [ '0' ] ,
175+ } ,
176+ ] ,
177+ stateStoring : {
178+ enabled : true ,
179+ type : 'custom' ,
180+ customLoad ( ) {
181+ return Promise . resolve ( {
182+ columns : [
183+ {
184+ dataField : 'id' ,
185+ } ,
186+ {
187+ dataField : 'textID' ,
188+ } ,
189+ ] ,
190+ } ) ;
191+ } ,
192+ } ,
193+ } ) ;
194+ } ) ;
Original file line number Diff line number Diff line change @@ -71,22 +71,24 @@ const processLoadState = (that) => {
7171 }
7272} ;
7373
74- const DEFAULT_FILTER_VALUE = null ;
75-
7674const getFilterValue = ( that , state ) => {
7775 // TODO: getController
7876 const filterSyncController = that . getController ( 'filterSync' ) ;
79- const columnsController = that . getController ( 'columns' ) ;
80- const hasFilterState = state . columns || state . filterValue !== undefined ;
77+ if ( ! filterSyncController ) {
78+ return null ;
79+ }
8180
82- if ( filterSyncController ) {
83- if ( hasFilterState ) {
84- return state . filterValue || filterSyncController . getFilterValueFromColumns ( state . columns ) ;
85- }
86- return that . _initialFilterValue || filterSyncController . getFilterValueFromColumns ( columnsController . getColumns ( ) ) ;
81+ if ( state . filterValue !== undefined ) {
82+ return state . filterValue ;
83+ }
84+
85+ const filterValueFromColumns = filterSyncController . getFilterValueFromColumns ?.( state . columns ) ;
86+ if ( filterValueFromColumns ?. length > 0 ) {
87+ return filterValueFromColumns ;
8788 }
8889
89- return DEFAULT_FILTER_VALUE ;
90+ const columns = that . getController ( 'columns' ) . getColumns ( ) ;
91+ return that . _initialFilterValue ?? filterSyncController . getFilterValueFromColumns ( columns ) ;
9092} ;
9193
9294const rowsView = ( Base : ModuleType < RowsView > ) => class StateStoringRowsViewExtender extends Base {
You can’t perform that action at this time.
0 commit comments