ParamQuery grid support forum
General Category => ParamQuery Pro Evaluation Support => Topic started by: wd_perf on March 17, 2016, 10:21:39 pm
-
Hi, I'm using local filtering. I found that the error happens when the part of the PQGrid has more than 10000 records or rows. It happens when I search with $ (dollar) symbol only (for example: 42$1234). It throws the exception in browser console and the PQGrid will become unresponsive. Can you please let me know to fix this issue.
-
Which version are you using?
Is it possible for you to share a test case with reproducible issue.
-
I am using version 3.3.0.
#Sample script for rendering grid
var data = json with 100000 objects in data
var renderGrid = function (container, title, headers, data, exportHandler) {
var str = JSON.stringify(data).replace(/\bNaN\b/g, "");
str = str.replace(/\bNAN\b/g, "");
data = JSON.parse(str);
var grid = {
title: title,
topVisible: false,
flexHeight: false,
showTop: true,
showBottom: true,
showHeader: true,
roundedCorners: true,
hoverMode: 'row',
numberCell: {width: 70, resizable: true},
virtualX: true,
virtualY: true,
virtualXHeader: false,
width: 'auto',
flex: { one: true },
selectionModel: {type: 'row', mode: 'single', fireSelectChange: true},
filterModel: {on: true, mode: "AND", header: true},
collapsible: {on: false},
toolbar: {
cls: 'pq-toolbar-crud',
style: 'text-align: right;',
items: [
{
type: 'button',
style: 'font-size: 10px; padding: 5px;',
label: 'Export to CSV',
icon: 'ui-icon-plus',
listeners: [{click: exportHandler}]
}
]
}
};
grid.colModel = headers;
grid.dataModel = {
data: data,
location: "local",
sorting: "local"
};
var pqGridObj = $(container).pqGrid(grid);
var tempGrid = pqGridObj.pqGrid("getInstance").grid;
for (var i in headers) {
if (headers.dataType == "string") {
headers.align = "left";
}
var filter = headers.filter;
if (filter.type == "select" && filter.attr == "multiple" && filter.condition == "range") {
filter.cache = null;
filter.options = tempGrid.getData({dataIndx: [headers.dataIndx]});
}
}
return pqGridObj;
};
renderGrid("#divId", "title", data.headers, data.data);
-
when I tested in my local with 90000 PQGrid seems to be working fine. can you try with data more than 100000, 200000, 300000 ..... 1million to reproduce. I got the exception in browser console when I was testing 215000 rows.
-
Your test case is incomplete.
I've created a similar jsfiddle http://jsfiddle.net/ffwx6xfs/ with 50,000 records, I couldn't reproduce the error mentioned by you.
Please let me know the steps to reproduce the error in the above jsfiddle.
-
Please find the jsfiddle. http://jsfiddle.net/nhnjvoj9/2/
Open the bowser console then In the filter box search with 1207$ to see the error.
-
Thanks for reporting this issue, I was able to reproduce it with 3,00,000 records. It has been fixed in the upcoming version.
-
Hi, Can you please let me know when can I can get the updated version for this fix?
-
Hi, Can you please let me know when can I can get the updated version for this fix?
It's already fixed in v3.3.1 released on May 30, 2016
-
can you please send me the latest patch through the provided email?
-
If you are an evaluation user, latest version can be downloaded from the download page. http://paramquery.com/pro/download/evaluate
If you are licensed user please share your Transaction Id and date of purchase so that your account can be upgraded.
-
Thanks for the confirmation.
Your account has been upgraded to Pro Ultimate. All downloads are available from your account under the menu "Pro Downloads".
-
Thanks for your reply. I did downloaded the latest version of PQgrid 3.3.1. It seems the issue got resolved. I don't see the "Max call stak exceeded" error, but I do see lot of performance issues. Its not filtering smooth for the large data set after I applied the new version. For each and every alphabet or number I enter in filter box its taking time to retrieve the results and the page is not responsive until then I can't able to enter the next alphabet or number. The time between two alphabets or numbers to filter in the textbox is 1 to 2 minutes. Definitely this will be a performance issue in the customer view perspective. Please use the previous jsfiddle which I send to test or create one and send it over here, because I don't want to put the latest version of pqgrid.min.js in jsfiddle to test and send it to you. Thanks in advance for your quick response on this.
-
If I copy the whole word(ex: baseball) and paste it in to the filter text box its works fine and get back the results in 10 seconds.
-
You are right, there is performance issue while filtering of huge number of records.
Please use the attached patch 3.3.1.2.min.js (include it after pqgrid.min.js file ) as a fix to this issue.
Also consider to use 'change' listener instead of 'keyup' listener for filtering if possible.
Please let me know whether it improves the performance in your case.
-
Thanks a lot param for helping on this. It does improves the performance. Works like a charm.
-
Thanks A lot for your help on this. It does improves the performance. Works like a charm