Hello,
I am troubleshooting an issue I have with a GRID where there is no data populating the GRID when I load the page but after clicking one of the custom pagination arrows we have, the data populates but then we can't click the arrow to go to the next page of data. There are quite a few files involved in this screen but I suspect the issue has to do with paging?
On page load:
After clicking custom pagination arrow:
GRID code:
a!localVariables( local!pagingInfo, { rule!TB_SEC_customPaginationComponent( startIndex: ri!pagingInfo.startIndex, batchSize: cons!TB_INT_TRADE_BATCH_SIZE, totalCount: ri!totalCount, saveExpression: { a!save( local!pagingInfo, a!pagingInfo( startIndex: if( a!isNullOrEmpty(ri!pagingInfo.startIndex), 0, ri!pagingInfo.startIndex ), batchSize: cons!TB_INT_TRADE_BATCH_SIZE, sort: ri!pagingInfo.sort ) ), a!save(ri!pagingInfo, local!pagingInfo), a!save( ri!fcaReportDetails, todatasubset( rule!TB_RULE_castToFcaReportCdt( data: rule!TB_SP_executeSQlStatement( sqlStatement: rule!TB_RULE_generateSQLStatementForFcaReport( podCode: ri!podCode, orderId: ri!orderId, vertInvestmentDesc: ri!vertInvestmentDesc, tradeQuantity: ri!tradeQuantity, execPrice: ri!execPrice, ccy: ri!ccy, principalAmount: ri!principalAmount, usdRate: ri!usdRate, gbpRate: ri!gbpRate, usdValue: ri!usdValue, bbTicker: ri!bbTicker, vertAssetType: ri!vertAssetType, vertTraderCode: ri!vertTraderCode, vertExecSide: ri!vertExecSide, pagingInfo: ri!pagingInfo ) ) ) ) ) } ), a!gridLayout( label: "", labelPosition: "COLLAPSED", headerCells: { a!forEach( items: cons!TB_TXT_COLUMN_LIST_FOR_FCA_REPORT, expression: a!gridLayoutHeaderCell(label: fv!item, align: "CENTER") ) }, columnConfigs: { a!gridLayoutColumnConfig(width: "DISTRIBUTE") }, rows: { a!forEach( items: ri!fcaReportDetails.data, expression: a!localVariables( local!rowData: fv!item, { a!gridRowLayout( id: fv!item.id, contents: { a!forEach( items: cons!TB_TXT_FIELDS_LIST_FOR_FCA_REPORT, expression: a!textField( readOnly: true(), align: "CENTER", label: { cons!TB_TXT_COLUMN_LIST_FOR_FCA_REPORT[wherecontains( fv!item, cons!TB_TXT_FIELDS_LIST_FOR_FCA_REPORT )] }, value: index(local!rowData, fv!item, null()) ) ) }, selectionDisabled: true() ) } ) ) }, shadeAlternateRows: true(), spacing: "DENSE" ), rule!TB_SEC_customPaginationComponent( startIndex: ri!pagingInfo.startIndex, batchSize: cons!TB_INT_TRADE_BATCH_SIZE, totalCount: ri!totalCount, saveExpression: { a!save( local!pagingInfo, a!pagingInfo( startIndex: if( a!isNullOrEmpty(ri!pagingInfo.startIndex), 0, ri!pagingInfo.startIndex ), batchSize: cons!TB_INT_TRADE_BATCH_SIZE, sort: ri!pagingInfo.sort ) ), a!save(ri!pagingInfo, local!pagingInfo), a!save( ri!fcaReportDetails, todatasubset( rule!TB_RULE_castToFcaReportCdt( data: rule!TB_SP_executeSQlStatement( sqlStatement: rule!TB_RULE_generateSQLStatementForFcaReport( podCode: ri!podCode, orderId: ri!orderId, vertInvestmentDesc: ri!vertInvestmentDesc, tradeQuantity: ri!tradeQuantity, execPrice: ri!execPrice, ccy: ri!ccy, principalAmount: ri!principalAmount, usdRate: ri!usdRate, gbpRate: ri!gbpRate, usdValue: ri!usdValue, bbTicker: ri!bbTicker, vertAssetType: ri!vertAssetType, vertTraderCode: ri!vertTraderCode, vertExecSide: ri!vertExecSide, pagingInfo: ri!pagingInfo ) ) ) ) ) } ) } )
if( ri!batchSize > ri!totalCount, a!richTextDisplayField( align: "RIGHT", value: a!richTextItem( text: ri!totalCount & " items", style: "STRONG", size: "STANDARD" ) ), { a!columnsLayout( columns: { a!columnLayout(contents: {}), a!columnLayout(contents: {}), a!columnLayout( contents: { a!sideBySideLayout( items: { a!sideBySideItem( item: a!stampField( labelPosition: "COLLAPSED", icon: "angle-double-left-bold", backgroundColor: if(ri!startIndex = 1, "SECONDARY", "ACCENT"), link: if( ri!startIndex = 1, {}, a!dynamicLink( saveInto: { a!save(ri!startIndex, 1), ri!saveExpression } ) ), size: "TINY" ), width: "MINIMIZE" ), a!sideBySideItem( item: a!stampField( labelPosition: "COLLAPSED", icon: "angle-left-bold", backgroundColor: if(ri!startIndex = 1, "SECONDARY", "ACCENT"), link: if( ri!startIndex = 1, {}, a!dynamicLink( saveInto: { a!save( ri!startIndex, ri!startIndex - ri!batchSize ), ri!saveExpression } ) ), size: "TINY" ), width: "MINIMIZE" ), a!sideBySideItem( item: a!richTextDisplayField( align: "CENTER", labelPosition: "COLLAPSED", value: { a!richTextItem( text: " " & ri!startIndex & " - " & if( ri!startIndex + ri!batchSize > ri!totalCount, ri!totalCount, ri!startIndex + ri!batchSize - 1 ) & " of " & ri!totalCount, size: "MEDIUM", style: "STRONG" ) } ) ), a!sideBySideItem( item: a!stampField( labelPosition: "COLLAPSED", icon: "angle-right-bold", backgroundColor: if( ri!startIndex + ri!batchSize > ri!totalCount, "SECONDARY", "ACCENT" ), link: if( ri!startIndex + ri!batchSize > ri!totalCount, {}, a!dynamicLink( saveInto: { a!save( ri!startIndex, ri!startIndex + ri!batchSize ), ri!saveExpression } ) ), size: "TINY" ), width: "MINIMIZE" ), a!sideBySideItem( item: a!stampField( labelPosition: "COLLAPSED", icon: "angle-double-right-bold", backgroundColor: if( ri!startIndex + ri!batchSize > ri!totalCount, "SECONDARY", "ACCENT" ), link: if( ri!startIndex + ri!batchSize > ri!totalCount, {}, a!dynamicLink( saveInto: { a!save( ri!startIndex, if( mod(ri!totalCount, ri!batchSize) = 0, ri!totalCount - ri!batchSize + 1, ri!totalCount - mod(ri!totalCount, ri!batchSize) + 1 ) ), ri!saveExpression } ) ), size: "TINY" ), width: "MINIMIZE" ), }, alignVertical: "MIDDLE", spacing: "SPARSE" ) } ) } ) } )
There is more code involved, but I suspect the issue is between these 2 files. We are getting the data from a stored procedure and I have confirmed that the SQL statement is properly retrieving the data. The reason I suspect the issue might be related to the pagination is because of the data populating after clicking the pagination arrow.
Any insight or help with this would be much appreciated. I can provide more code if discussion warrants it.
Thanks in advance.
Discussion posts and replies are publicly visible
What are you passing in as the initial value of ri!fcaReportDetails? If you're not initializing it to contain the first page of data, then a blank initial value would be the expected behavior IMHO.
Gus Lines can you un-spam the OP's reply to my comment?
It should be viewable now! Thanks
cool, thanks!
nice ! noted his name down :D