Skip to content

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

Open
Alyar666 wants to merge 23 commits intoDevExpress:26_1from
Alyar666:T1318812_26_1_attempt_3
Open

DataGrid: Fix the banded Columns' vertical borders (T1318812)#32802
Alyar666 wants to merge 23 commits intoDevExpress:26_1from
Alyar666:T1318812_26_1_attempt_3

Conversation

@Alyar666
Copy link
Copy Markdown
Contributor

@Alyar666 Alyar666 commented Mar 5, 2026

No description provided.

@Alyar666 Alyar666 self-assigned this Mar 5, 2026
Copilot AI review requested due to automatic review settings March 5, 2026 13:48
@Alyar666 Alyar666 requested a review from a team as a code owner March 5, 2026 13:48

This comment was marked as outdated.

Copilot AI review requested due to automatic review settings March 10, 2026 13:15
@Alyar666 Alyar666 force-pushed the T1318812_26_1_attempt_3 branch from 88936f8 to ccd2691 Compare March 10, 2026 13:15
Copy link
Copy Markdown
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

Copilot reviewed 25 out of 25 changed files in this pull request and generated 3 comments.

@Alyar666 Alyar666 force-pushed the T1318812_26_1_attempt_3 branch from ccd2691 to 2899a74 Compare March 16, 2026 09:55
Copilot AI review requested due to automatic review settings March 16, 2026 10:24

This comment was marked as outdated.

@Alyar666 Alyar666 force-pushed the T1318812_26_1_attempt_3 branch from 77856d4 to d98ceff Compare March 17, 2026 09:24
Copilot AI review requested due to automatic review settings March 17, 2026 12:10

This comment was marked as outdated.

@Alyar666 Alyar666 force-pushed the T1318812_26_1_attempt_3 branch from 04062b7 to a784fb8 Compare March 17, 2026 22:03
Copilot AI review requested due to automatic review settings March 17, 2026 22:03
Copy link
Copy Markdown
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

Copilot reviewed 18 out of 18 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings March 18, 2026 17:22
Copy link
Copy Markdown
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

Copilot reviewed 18 out of 159 changed files in this pull request and generated 4 comments.

@Alyar666 Alyar666 force-pushed the T1318812_26_1_attempt_3 branch from be6ac0c to f9562be Compare March 18, 2026 21:15
Copy link
Copy Markdown
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

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

Alyar added 3 commits March 19, 2026 02:31
… selectors

The border-left/border-right rules for multi-row headers incorrectly
targeted all .dx-row elements inside the headers container. This caused
filter row cells to get unexpected borders when band columns were present
and showColumnHeaders was false. Narrowing the selector to .dx-header-row
ensures only actual header rows are affected.
Copilot AI review requested due to automatic review settings March 19, 2026 08:36
Copy link
Copy Markdown
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

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

Copilot AI review requested due to automatic review settings March 19, 2026 15:10
Copy link
Copy Markdown
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

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

Copilot AI review requested due to automatic review settings March 25, 2026 14:02
Copy link
Copy Markdown
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

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

Comment on lines +730 to +735
protected needToUpdateFirstCellClasses(): boolean {
const hasHidingColumnsQueue = !!this._adaptiveColumnsController
?.getHidingColumnsQueue()?.length;

return hasHidingColumnsQueue;
}
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

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

needToUpdateFirstCellClasses() only checks getHidingColumnsQueue().length. When adaptivity has already hidden columns (e.g. _hiddenColumns is non-empty) or when columns are being shown back (queue can be empty), the first-cell class may still need recalculation, but this method will return false and skip updates. Consider also checking this._adaptiveColumnsController?.hasHiddenColumns() (or another reliable signal that the first visible column may have changed).

Copilot uses AI. Check for mistakes.
Alyar added 2 commits March 26, 2026 02:12
…ers (T1318812)

- Override _getVisibleColumnIndex in ColumnHeadersView to pass rowIndex to getVisibleIndex
- Type _getVisibleColumnIndex signature across base and derived classes
- Fix _getCellElement to handle missing cells with fallback to empty jQuery set
Copilot AI review requested due to automatic review settings March 25, 2026 23:00
Copy link
Copy Markdown
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

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

Comment on lines +737 to +749
protected updateFirstCellClasses(): void {
const rows = this._getRows();

rows.forEach((row, index) => {
const rowIndex = row.rowType === 'header' ? index : null;
const firstColumn = this._columnsController.getFirstColumn(rowIndex);

if (firstColumn) {
const $cell = this._getCellElement(index, `index:${firstColumn.index}`);

this.toggleFirstCellClass($cell, true);
}
});
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

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

updateFirstCellClasses only toggles the first-cell class on the new first column, but it never removes the class from the previously-first cell in each row. After multiple visibility/width changes (e.g., column hiding/unhiding in adaptive mode), multiple cells in the same row can keep dx-*-first-cell, which will break border logic. Consider clearing the first-cell class for all cells in the row first (or tracking the previous first column and toggling it off) before enabling it for the current first column.

Copilot uses AI. Check for mistakes.
Copilot AI review requested due to automatic review settings March 27, 2026 07:53
Copy link
Copy Markdown
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

Copilot reviewed 25 out of 188 changed files in this pull request and generated 2 comments.

Comment on lines +229 to +235
.dx-rtl .dx-#{$widget-name}-headers.dx-header-multi-row .dx-header-row:not(.dx-column-lines) > td:not(
.dx-#{$widget-name}-first-cell,
.dx-#{$widget-name}-hidden-column,
.dx-command-adaptive-hidden
.dx-#{$widget-name}-sticky-column-border-right,
.dx-#{$widget-name}-column-no-border
) {
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

In the RTL multi-row header selector, the :not(...) list is missing a comma after .dx-command-adaptive-hidden. As written, it becomes a descendant selector (.dx-command-adaptive-hidden .dx-...-sticky-column-border-right) instead of two separate exclusions, which will produce incorrect border rules in RTL (and may invalidate the selector in some preprocessors). Add the missing comma so all exclusions are separate selectors.

Copilot uses AI. Check for mistakes.
Comment on lines +112 to +121
for (const { rowIndex, cells } of expectedRows) {
const summaryRow = dataGrid.getFooterRow();

// eslint-disable-next-line no-restricted-syntax
for (const { columnIndex, name, expected: [leftWidth, rightWidth] } of cells) {
const element = summaryRow.child('td');

const borderLeft = await element.getStyleProperty('border-left-width');
const borderRight = await element.getStyleProperty('border-right-width');

Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

checkSummaryCellBorders ignores rowIndex and columnIndex: it always reads styles from summaryRow.child('td') (the first footer cell). This makes the helper incorrectly validate only the first summary cell even when multiple columns are provided. Use the columnIndex to select the correct cell (e.g., summaryRow.child('td').nth(columnIndex) / find('td').nth(...)) and, if multiple footer rows are possible, also use rowIndex.

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.

2 participants