Hi everyone,
I'm facing an issue with a large data grid in my application. Here's what's happening:
It seems like the grid is not aware that there are still more records to load, even though the server's totalRows value indicates additional data is available.
Question:
How can I make the grid aware that it needs to paginate further and trigger fetch requests when scrolling?
Any help or suggestions would be greatly appreciated!
Version:
SmartClient Ajax RIA system
Version v12.0p_2020-08-08/PowerEdition Deployment (2020-08-08)
Grid:
function createMyGridList() {
return isc.CustomListGrid.create({
ID: "myGridList",
allowRowSpanning: true,
height:"100%",
dataSource: "exampleGrid",
dataProperties: { fetchMode: "paged", progressiveLoadingThreshold: 250, virtualScrolling: true },
dataFetchMode: "paged",
dataPageSize: 500,
drawAllMaxCells:0,
progressiveLoading:true,
showAllRecords: false,
loadingMode: "paged",
infiniteScrolling: true,
virtualScrolling: true,
fixedRecordHeight: true,
bypassCache: true,
//invalidateCache: true,
pagingMode: "server",
drawAheadRatio: 1,
showFilterEditor: true,
canHover: true, showHover: true,
//useAllDataSourceFields:false,
canEdit: true,
editByCell: true,
canEdit: true,
editEvent: "none",
autoSaveEdits: false,
saveByCell: false,
showRollOver: false,
showGridSummary: true,
canDragRecordsOut: false,
productType: "",
productSubType: "",
width: "100%",
selectionType: "multiple",
getFilteredData: function() {
},
dataArrived: function() {
loadTotalRows(eval("TotalRows"), eval("myGridListt"));
//console.log("Total rows in data arrived: ", loadTotalRows(eval("TotalRows"), eval("myGridList")));
var totalRows = this.getTotalRows();
if(totalRows !== undefined){
this.setTotalRows = totalRows;
console.log("Total rows in data arrived: ",totalRows );
}
this.Super("dataArrived", arguments);
},
Datasource:
<DataSource
ID="exampleGrid"
serverConstructor="exampleGridDataSource"
showPrompt="false"
>
<fields>
<field name="Id" title=" Id" primaryKey="true" canEdit="false" />
</fields>
</DataSource>
I'm facing an issue with a large data grid in my application. Here's what's happening:
- The initial request is sent correctly with the parameters startRow: 0 and endRow: 500.
- The server responds as expected with the correct values for startRow, endRow, and totalRows.
- However, when I scroll down the grid, the scroll bar moves to the end, but the grid does not send a request to fetch the next set of rows.
It seems like the grid is not aware that there are still more records to load, even though the server's totalRows value indicates additional data is available.
Question:
How can I make the grid aware that it needs to paginate further and trigger fetch requests when scrolling?
Any help or suggestions would be greatly appreciated!
Version:
SmartClient Ajax RIA system
Version v12.0p_2020-08-08/PowerEdition Deployment (2020-08-08)
Grid:
function createMyGridList() {
return isc.CustomListGrid.create({
ID: "myGridList",
allowRowSpanning: true,
height:"100%",
dataSource: "exampleGrid",
dataProperties: { fetchMode: "paged", progressiveLoadingThreshold: 250, virtualScrolling: true },
dataFetchMode: "paged",
dataPageSize: 500,
drawAllMaxCells:0,
progressiveLoading:true,
showAllRecords: false,
loadingMode: "paged",
infiniteScrolling: true,
virtualScrolling: true,
fixedRecordHeight: true,
bypassCache: true,
//invalidateCache: true,
pagingMode: "server",
drawAheadRatio: 1,
showFilterEditor: true,
canHover: true, showHover: true,
//useAllDataSourceFields:false,
canEdit: true,
editByCell: true,
canEdit: true,
editEvent: "none",
autoSaveEdits: false,
saveByCell: false,
showRollOver: false,
showGridSummary: true,
canDragRecordsOut: false,
productType: "",
productSubType: "",
width: "100%",
selectionType: "multiple",
getFilteredData: function() {
},
dataArrived: function() {
loadTotalRows(eval("TotalRows"), eval("myGridListt"));
//console.log("Total rows in data arrived: ", loadTotalRows(eval("TotalRows"), eval("myGridList")));
var totalRows = this.getTotalRows();
if(totalRows !== undefined){
this.setTotalRows = totalRows;
console.log("Total rows in data arrived: ",totalRows );
}
this.Super("dataArrived", arguments);
},
Datasource:
<DataSource
ID="exampleGrid"
serverConstructor="exampleGridDataSource"
showPrompt="false"
>
<fields>
<field name="Id" title=" Id" primaryKey="true" canEdit="false" />
</fields>
</DataSource>
Comment