Hi Isomorphic,
We are using Smart Client v8.3p_2013-09-17/Pro Deployment and noticing some issues with ListGrid record components and large datasets. Reproducible test case(s) is below.
(1) When recordComponentPoolingMode is set to 'viewport,' I can see the record components fine for the records in the current view (attch:viewport pooling - initial.png), but when I scroll down enough so new pages are loaded and then scroll back up to the top, record components for a bunch of the first few records in the view are not shown anymore (attch: viewport pooling - after scrolling.png).
(2) This problem gets resolved when I change the recordComponentPoolingMode to 'data.' However, I have another issue where the record component is drawn again when there is any sort of filter.
After changing the pooling mode to 'data,' if I try to apply a filter in the SKU column for '45' (first record gets returned in new filter set), for example, notice that the record component text is drawn once more overlapping the original (attch: data pooling - double.png). Then when I expand the record, one of the two record components draw is still visible even when I try to hide it.
Is it possible to have a solution where both these issues don't arise?
Thanks.
We are using Smart Client v8.3p_2013-09-17/Pro Deployment and noticing some issues with ListGrid record components and large datasets. Reproducible test case(s) is below.
(1) When recordComponentPoolingMode is set to 'viewport,' I can see the record components fine for the records in the current view (attch:viewport pooling - initial.png), but when I scroll down enough so new pages are loaded and then scroll back up to the top, record components for a bunch of the first few records in the view are not shown anymore (attch: viewport pooling - after scrolling.png).
(2) This problem gets resolved when I change the recordComponentPoolingMode to 'data.' However, I have another issue where the record component is drawn again when there is any sort of filter.
After changing the pooling mode to 'data,' if I try to apply a filter in the SKU column for '45' (first record gets returned in new filter set), for example, notice that the record component text is drawn once more overlapping the original (attch: data pooling - double.png). Then when I expand the record, one of the two record components draw is still visible even when I try to hide it.
Is it possible to have a solution where both these issues don't arise?
Thanks.
Code:
<%@ taglib uri="/WEB-INF/iscTaglib.xml" prefix="isomorphic" %> <HTML><HEAD> <isomorphic:loadISC skin="Enterprise"/> </HEAD> <BODY> <SCRIPT> <isomorphic:loadDS ID="supplyItem"/> var showRecordComponentMap = {}; isc.ListGrid.create({ ID: "itemList", dataSource: "supplyItem", leaveScrollbarGap:false, height: 500, width: "100%", fields : [ { name:"itemName" }, { name:"SKU" }, { name:"unitCost", width:50 }, { name:"units", width:40 } ], recordComponentPoolingMode: "viewport", selectionType: "single", showRecordComponents: true, canExpandMultipleRecords: true, canExpandRecords: true, showFilterEditor: true, getExpansionComponent: function (record) { if (record) { var recordId = record.id; showRecordComponentMap[recordId] = false; this.displayRecordComponent(record); } return isc.DetailViewer.create({ data: record, fields: [ {name: "itemName", title: "Name"}, {name: "description", title: "Description"}, {name: "category", title: "Category"} ] }); }, displayRecordComponent: function(record) { var recordNumber = this.getRecordIndex(record); this.refreshRecordComponent(recordNumber); }, createRecordComponent: function(record) { var recordId = record.id; if ((showRecordComponentMap[recordId] == null || showRecordComponentMap[recordId])) { return isc.HTMLFlow.create({ autoDraw: false, align: "center", contents: "Record Component Text" }); } }, onCollapseRecord: function (record) { var recordId = record.id; showRecordComponentMap[recordId] = true; this.displayRecordComponent(record); return true; } }); itemList.fetchData(); </SCRIPT> </BODY> </HTML>
Comment