jspreadsheet / jspreadsheet/ce
Using filters and freezeColumns at the same time will lead to style errors
Open
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 7.2k
- Forks
- 890
- PR merge metrics
- No merged PRs in 30d
Description
Using filters and freezeColumns at the same time will lead to style errors,the filters for frozen rows will not be frozen.
Below is my temporary solution.
line 6859
obj.updateFreezePosition = function() {
scrollLeft = obj.content.scrollLeft;
var width = 0;
if (scrollLeft > 50) {
for (var i = 0; i < obj.options.freezeColumns; i++) {
if (i > 0) {
width += parseInt(obj.options.columns[i-1].width);
}
obj.headers[i].classList.add('jexcel_freezed');
obj.headers[i].style.left = width + 'px';
// if you are using filters, then freeze the filters
if( obj.options.filters ){
obj.filter.children[i+1].classList.add('jexcel_freezed');
obj.filter.children[i+1].style.left = width + 'px';
}
for (var j = 0; j < obj.rows.length; j++) {
if (obj.rows[j] && obj.records[j][i]) {
var shifted = (scrollLeft + (i > 0 ? obj.records[j][i-1].style.width : 0)) - 51 + 'px';
obj.records[j][i].classList.add('jexcel_freezed');
obj.records[j][i].style.left = shifted;
}
}
}
} else {
for (var i = 0; i < obj.options.freezeColumns; i++) {
obj.headers[i].classList.remove('jexcel_freezed');
obj.headers[i].style.left = '';
for (var j = 0; j < obj.rows.length; j++) {
if (obj.records[j][i]) {
obj.records[j][i].classList.remove('jexcel_freezed');
obj.records[j][i].style.left = '';
}
}
}
}
// Place the corner in the correct place
obj.updateCornerPosition();
}
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inspecting updateFreezePosition around line 6859, focusing on how freezeColumns handles filter elements when filters are enabled. Reproduce the combination of filters and freezeColumns, then verify that filters in frozen rows remain frozen without style errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100