|
[sample.html]
provide: {
grids: [VirtualScroll], // Please use grid in the provide section
}, |
|
[App.Vue]
<ejs-grid
ref="grid"
:dataSource="data"
:height="200"
:enableVirtualization="true"
:dataStateChange="dataStateChange"
>
. . . .
</ejs-grid>
mounted() {
// Used vue mounted hook to provide dataSource to Grid and handled the initial paging
let state = { skip: 0, take: 12 };
this.dataStateChange(state); // call the dataStateChange function here
},
dataStateChange: function (state) {
console.log("dataStateChange event triggered....");
getOrders(state).then(gridData => { // get the service data
this.data = gridData;
}
);
}, |
|
[OrderService.ts]
// get
export function getOrders(state) {
const skipquery = state.skip > -1 ? `$skip=${state.skip}` : null;
let pageQuery = "";
const takeQuery = state.take > -1 ? `$top=${state.take}` : null;
if (skipquery) {
pageQuery = `${skipquery}&`;
}
if (takeQuery) {
pageQuery = `${pageQuery}${takeQuery}`;
}
return fetch(baseUrl + "/Orders"+"?"+pageQuery+"&$count=true")
.then(res => res.json())
.then(data => {
return {
result: data["value"],
count: parseInt(data["@odata.count"], 10)
};
});
} |