Skip to content

DataGrid: Fix the banded Columns' vertical borders (T1318812)#32388

Open
Alyar666 wants to merge 5 commits intoDevExpress:26_1from
Alyar666:T1318812_26_1
Open

DataGrid: Fix the banded Columns' vertical borders (T1318812)#32388
Alyar666 wants to merge 5 commits intoDevExpress:26_1from
Alyar666:T1318812_26_1

Conversation

@Alyar666
Copy link
Contributor

@Alyar666 Alyar666 commented Feb 3, 2026

No description provided.

@Alyar666 Alyar666 self-assigned this Feb 3, 2026
@Alyar666 Alyar666 requested a review from a team as a code owner February 3, 2026 12:35
Copilot AI review requested due to automatic review settings February 3, 2026 12:35
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refines how banded DataGrid columns handle sticky borders and header cell borders so that vertical borders render correctly in various configurations (including grouping, band nesting, RTL, and showColumnLines), and adds focused unit and E2E coverage for these scenarios.

Changes:

  • Adjusts sticky-column utilities and ColumnsController band-children resolution to correctly skip grouped/command columns when determining border removal and visible band data columns, with new Jest unit tests for both helpers.
  • Updates SCSS for generic, material, fluent themes, as well as base DataGrid/TreeList, to align header/band border rendering (especially for multi-row headers, sticky columns, RTL, and banded columns).
  • Reorganizes and extends TestCafe E2E tests for band columns into visual, functional, and matrix suites, adding screenshot-based regression coverage across showColumnLines and RTL combinations and moving a functional scenario into its own fixture.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/devextreme/js/__internal/grids/grid_core/sticky_columns/utils.ts Adjusts needToRemoveColumnBorder to avoid traversing parent bands for command/group columns using column.type, preventing incorrect border removal for grouped columns.
packages/devextreme/js/__internal/grids/grid_core/sticky_columns/utils.test.ts Adds unit tests verifying that grouped columns and grouped columns with showWhenGrouped are handled correctly by needToRemoveColumnBorder.
packages/devextreme/js/__internal/grids/grid_core/columns_controller/m_columns_controller.ts Changes getVisibleDataColumnsByBandColumn to use the shared getChildrenByBandColumn helper recursively, ensuring visible band data columns exclude grouped columns without showWhenGrouped.
packages/devextreme/js/__internal/grids/grid_core/columns_controller/m_columns_controller.test.ts Replaces integration-style tests with unit tests using a mocked component to validate getVisibleDataColumnsByBandColumn behavior (visibility, recursion across nested bands, and showWhenGrouped).
packages/devextreme/js/__internal/grids/grid_core/columns_controller/m_columns_controller.integration.test.ts Introduces a dedicated integration test file for DataGrid grouping with unsupported command column types, preserving the previous behavior checks in a more appropriate place.
packages/devextreme-scss/scss/widgets/material/gridBase/_index.scss Tweaks material theme grid header multi-row styles to consistently apply left/right borders for header cells (excluding sticky/no-border cells) and adds RTL-specific rules for multi-row headers.
packages/devextreme-scss/scss/widgets/generic/gridBase/_index.scss Adjusts generic theme multi-row header styles to add left borders for non-sticky header cells and adds RTL rules that flip borders appropriately for banded headers.
packages/devextreme-scss/scss/widgets/fluent/gridBase/_index.scss Mirrors the generic/material header border changes for the fluent theme, including RTL-specific multi-row header rules.
packages/devextreme-scss/scss/widgets/base/treeList/_index.scss Updates TreeList header first-cell border removal to no longer be conditioned on .dx-column-lines, keeping borders consistent with new sticky/band logic.
packages/devextreme-scss/scss/widgets/base/dataGrid/_index.scss Similarly adjusts DataGrid header first-cell border removal independent of .dx-column-lines, aligning with updated sticky-column behavior.
e2e/testcafe-devextreme/tests/dataGrid/common/bandColumns/visual.ts Renames fixture and simplifies imports, leaving the visual runtime-change band-columns screenshot tests intact.
e2e/testcafe-devextreme/tests/dataGrid/common/bandColumns/matrix.ts Adds new screenshot-based tests that exercise banded columns’ vertical borders under combinations of showColumnLines and RTL, providing matrix coverage of the visual regression.
e2e/testcafe-devextreme/tests/dataGrid/common/bandColumns/functional.ts Extracts the functional test for columnOption on a banded column (T1210340) into its own fixture, preserving behavior checks separately from visual tests.

configs.forEach((
{ showColumnLines, rtlEnabled }: { showColumnLines: boolean; rtlEnabled: boolean; },
): void => {
test('test', async (t) => {
Copy link

Copilot AI Feb 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test name "test" is very generic and will appear multiple times (once per configuration in the configs.forEach), which makes it harder to identify failing scenarios in TestCafe output. Consider giving this test a more descriptive name that includes the scenario (for example, the column lines / RTL flags) so failures are easier to trace.

Suggested change
test('test', async (t) => {
test(
`Band columns vertical borders (showColumnLines=${showColumnLines}, rtlEnabled=${rtlEnabled})`,
async (t) => {

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant