BoldDesk®Customer service software offering ticketing, live chat, and omnichannel support, starting at $49/mo. for 10 agents. Try it for free.
App.component.html
<div class="control-section">
<div id="scroll_wrapper1">
<div id="scroll_div"></div>
</div>
<div id="scroll_wrapper2">
<div id="grid_parent">
<ejs-grid [dataSource]="data" allowPaging="true" height="100%" width="100%” (load)="load($event)"
[pageSettings]="pageSettings"
>
<e-columns>
. . .
</e-columns>
</ejs-grid>
</div>
</div>
</div>
-----------------------------------------------------------------------------------
App.component.ts export class AppComponent {
load(args){
var wrapper1 = document.getElementById("scroll_wrapper1");
var wrapper2 = document.getElementById("scroll_wrapper2");
wrapper1.onscroll = function() {
wrapper2.scrollLeft = wrapper1.scrollLeft;
};
wrapper2.onscroll = function() {
wrapper1.scrollLeft = wrapper2.scrollLeft;
};
}
}
|
<style>
#scroll_wrapper1,
#scroll_wrapper2 {
width: 600px;
overflow-x: scroll;
overflow-y: hidden;
}
#scroll_wrapper1 {
height: 20px;
position: -webkit-sticky !important;
position: sticky !important;
top: 0% !important;
z-index: 1 !important;
}
#scroll_wrapper2 {
height: 500px;
}
#scroll_div {
width: 900px;
height: 20px;
}
#grid_parent {
width: 900px;
height: 500px;
overflow: auto;
}
</style>
|
App.component.ts
dataBound(args) {
var scroll = document.getElementById('wrapper1');
var content = document.getElementsByClassName('e-gridcontent')[0]; //get content
var grid = (document.getElementsByClassName('e-grid')[0] as any).ej2_instances[0];
grid.element.insertBefore(scroll, content); //by using insert before function we have place the scrollbar between the content and header
var wrapper1 = document.getElementById("wrapper1");
wrapper1.onscroll = function () { //bind onscroll event and
var grid = (document.getElementsByClassName('e-grid')[0] as any).ej2_instances[0];
grid.getContent().firstElementChild.scrollLeft = wrapper1.scrollLeft; // set the wrapper1 scrollLeft to the Grid scrollLeft
};
(this.grid.getContent().firstElementChild as any).onscroll = function () { //bind onscroll in grid scroller
var grid = (document.getElementsByClassName('e-grid')[0] as any).ej2_instances[0];
wrapper1.scrollLeft = grid.getContent().firstElementChild.scrollLeft; // set the Grid scrollLeft to the wrapper1 scrollLeft
};
}
}
|
App.component.html
<div class="control-section">
<div id="wrapper1">
<div id="div1"></div>
</div>
<ejs-grid
#grid
[dataSource]="data"
allowPaging="true"
height="500px"
width="600px"
(dataBound)="dataBound($event)"
[pageSettings]="pageSettings"
>
<e-columns>
. . . . . . . . . .
</e-columns>
</ejs-grid>
</div> |
index.html
<style>
#wrapper1{
width: 580px;
overflow-x: scroll;
overflow-y:hidden;
}
#wrapper1 {height: 20px; }
#div1 {
width:800px;
height: 20px;
}
</style>
|
<div class="control-section">
<div id="wrapper1">
<div id="div1"></div>
</div>
<ejs-grid
#grid
[dataSource]="data"
allowPaging="true"
height="500px"
width="100%"
(dataBound)="dataBound($event)"
[pageSettings]="pageSettings"
>
<e-columns>
. . .
</e-columns>
</ejs-grid>
</div>
|
export class AppComponent {
public data: Object[];
public pageSettings: Object;
@ViewChild('grid')
public grid: GridComponent;
ngOnInit(): void {
this.data = data;
this.pageSettings = { pageCount: 5 };
}
dataBound(args) {
var scroll = document.getElementById('wrapper1')
var content = document.getElementsByClassName('e-gridcontent')[0];
var grid = (document.getElementsByClassName('e-grid')[0] as any).ej2_instances[0];
grid.element.insertBefore(scroll, content);
var wrapper1 = document.getElementById("wrapper1");
wrapper1.onscroll = function () {
var grid = (document.getElementsByClassName('e-grid')[0] as any).ej2_instances[0];
grid.getContent().firstElementChild.scrollLeft = wrapper1.scrollLeft;
};
(this.grid.getContent().firstElementChild as any).onscroll = function () {
var grid = (document.getElementsByClassName('e-grid')[0] as any).ej2_instances[0];
wrapper1.scrollLeft = grid.getContent().firstElementChild.scrollLeft;
}
}
} |
#wrapper1 {
width: 98.8%;
overflow-x: scroll;
overflow-y: hidden;
}
#wrapper1 {
height: 20px;
}
#div1 {
width: 2800px;
height: 20px;
} |