Hi Isomorphic,
a minor one, but still open in 12.0/12.1 docs.
Best regards
Blama
Announcement
Collapse
No announcement yet.
X
-
There are flags on ResultSet to turn off local filter and sort. However, even on mobile, you are generally better off delivering all filterable columns to the browser, since local filtering allows you to avoid multiple entire requests and responses, as well as remain interactive when the network connection drops, whereas the additional columns turn out to be very little data, especially with compression.
Leave a comment:
-
Hi Isomorphic,
thank you, really simple and indeed the root cause of a problem in front of the monitor. There is an "outputs" applied in order to only transfer a few columns to the client (mobile phone).
Then there is criteria put on columns with null-value on the client...
Is there some switch to dumb down ListGrid to that it does not filterLocally? setFilterLocalData() seems not to be the correct API.
fetch()'s-requestProperties parameter also seems not to be the correct place.
Just putting an invalidateCache() in the DSCallback also seems not to be the correct solution, if the filtering is already causing a server request.
Thank you & Best regards
Blama
Leave a comment:
-
This is actually pretty simple: the records in the grid do not match the filter criteria, but your server code thinks they do.
This can happen if you, for example, return records that don’t have all the fields that the criteria apply to, or where the value delivered to the client differs from what was used for filtering on the server.
Leave a comment:
-
This issue is related to this Post: https://forums.smartclient.com/forum...ide-filterdata
Leave a comment:
-
ListGrid filtering issue when data available in client cache
Hi Isomorphic,
I have an issue in our application, but I can't find an explanation for that. Please see this testcase(same setup as our application, but problem is not coming up):
Code:isc.VStack.create({ width:"100%", membersMargin:20, members:[ isc.ListGrid.create({ autoDraw:false, ID:"boundList", tileWidth:158, tileHeight:225, height:400, canReorderTiles:true, // showAllRecords:true, dataSource:"supplyItem", //showFilterEditor: true, groupByField: "category", autoFetchData:false, animateTileChange:true, detailViewerProperties: { rowHeight: 22 }, fields: [ {name:"itemName", cellStyle: "animalImage"}, {name:"category", cellStyle: "animalImage"}, {name:"units", cellStyle: "animalImage"} ] }), isc.HLayout.create({ autoDraw:false, membersMargin:10, height: 22, members:[ isc.IButton.create( { title:"units", click:"boundList.fetchData({_constructor: 'AdvancedCriteria', operator: 'and', criteria: [{ fieldName: 'units', operator: 'equals', value: 'Box' }]});", autoFit:true } ), isc.IButton.create( { title:"units and item", click:"boundList.fetchData({_constructor: 'AdvancedCriteria', operator: 'and', criteria: [{ fieldName: 'units', operator: 'equals', value: 'Box' },{ fieldName: 'item', operator: 'iContains', value: 'int' }]});", autoFit:true } ), isc.IButton.create( { title:"fetch implicitCriteria", click:"boundList.filterData();", autoFit:true } ) ] }) ] });
Here is the Log Message from the above sample:
14:03:20.891:MUP7: DEBUG:ListGrid:boundList:Setting filter to: {
"_constructor":"AdvancedCriteria",
"operator":"and",
"criteria":[
{
"fieldName":"units",
"operator":"equals",
"value":"Box"
},
{
"fieldName":"item",
"operator":"iContains",
"value":"int"
}
]
}
14:03:20.893:MUP7:INFO:ResultSet:isc_ResultSet_0 (dataSource: supplyItem, created by: boundList):setCriteria: filter criteria changed, performing local filtering
14:03:20.914:MUP7: DEBUG:ResultSet:isc_ResultSet_0 (dataSource: supplyItem, created by: boundList):getRange(0, 335) satisfied from cache
14:03:20.925:TMR0: DEBUG:ResultSet:isc_ResultSet_0 (dataSource: supplyItem, created by: boundList):getRange(0, 335) satisfied from cache
Here is the Log Message from our application:
14:00:20.590:MUP0: DEBUG:ListGrid:isc_MyLeadsGrid_0:Setting filter to: {
"operator":"and",
"_constructor":"AdvancedCriteria",
"criteria":[
{
"fieldName":"CAMPAIGN",
"operator":"iContains",
"value":"ct"
},
{
"fieldName":"CUST_CONTACTPERS",
"operator":"iContains",
"value":"as"
}
]
}
14:00:20.592:MUP0:INFO:ResultSet:isc_ResultSet_0 (dataSource: V_L_MGMT, created by: isc_MyLeadsGrid_0):setCriteria: filter criteria changed, performing local filtering
14:00:20.593:MUP0:INFO:ResultSet:isc_ResultSet_0 (dataSource: V_L_MGMT, created by: isc_MyLeadsGrid_0):doSort: sorting on properties [S_POS,S_DATE] : directions [true,true] : full cache allows local sort
In both, our app and the example the LogLevel for ResultSet and ResultTree were set to Debug. Can you maybe localize the problem, regarding the Log? As You see, the two DEBUG information, shown in the log from the example, don't appear in our application. Or can you maybe give some advice, on which debug settings are best, to track down what could possibly went wrong on the way from the resultSet to the Grid? Any hint is highly appreciated!
Thanks in Advance!
Kind Regards
Tags: None
Leave a comment: