|
App.Component.html
<div id="scroll"></div>
<ej-grid id="Grid" [dataSource]="gridData" [allowScrolling]="true" (dataBound)="dataBound($event)" [scrollSettings]="scrollSettings" [toolbarSettings]="toolbarItems" >
<e-columns>
<e-column field="Field1" headerText="Employee ID" [isPrimaryKey]="true" width="85" textAlign="right"></e-column>
. . .
</e-columns>
</ej-grid>
App.Component.ts
dataBound(e: any){
var width, height, maximum, viewportSize;
var gridObj = $(".e-grid").ejGrid("instance");
var scroller = gridObj.getScrollObject();
width = viewportSize = gridObj.model.scrollSettings.width - scroller.model.scrollerSize;
height = scroller.model.scrollerSize;
maximum = scroller.content()[0]["scrollWidth"];
$("#scroll").ejScrollBar({ // render the scroller
viewportSize: viewportSize,
width: width,
maximum: maximum - viewportSize,
scroll: ej.proxy(scroller._scrollChanged, scroller),
});
gridObj.element.find(".e-gridheader").append($("#scroll")); // Append it on the top of the Grid
gridObj.element.find(".e-content").scroll(function(args) {
var scroller = gridObj.getScrollObject();
var value = scroller.scrollLeft();
var scrollbar = $("#scroll").ejScrollBar("instance"); //Bind scroll event for the scroller
scrollbar.scroll(value);
});
} |
|
<div id="scroll_wrapper1">
<div id="scroll_div"></div>
</div>
<div id="scroll_wrapper2">
<div id="grid_parent">
<ejs-grid [dataSource]='data' height='100%' width='100%'>
</ejs-grid>
</div>
</div> |
|
ngOnInit(): void {
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;
};
} |
|
#scroll_wrapper1, #scroll_wrapper2 {
width: 600px;
overflow-x: scroll;
overflow-y: hidden;
}
#scroll_wrapper1 {
height: 20px;
}
#scroll_wrapper2 {
height: 500px;
}
#scroll_div {
width:800px;
height: 20px;
}
#grid_parent {
width:800px;
height: 500px;
overflow: auto;
} |