jQWidgets Forums
jQuery UI Widgets › Forums › Grid › selectionmode: 'checkbox', virtualmode: true and Items over 1m problem?
Tagged: checkbox, error, selectionmode, virtualmode
This topic contains 4 replies, has 3 voices, and was last updated by boteeka 11 years, 5 months ago.
-
Author
-
October 4, 2013 at 5:18 am selectionmode: 'checkbox', virtualmode: true and Items over 1m problem? #30195
<!DOCTYPE html><html lang="en"><head> <title id='Description'>In this demo jqxGrid uses a virtualized paging which enables you to handle very large data sets without any impact on client side performance.</title> <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" /> <script type="text/javascript" src="../../scripts/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxmenu.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxlistbox.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxdropdownlist.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxgrid.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxgrid.pager.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxgrid.selection.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxcheckbox.js"></script> <script type="text/javascript" src="../../scripts/gettheme.js"></script> <script type="text/javascript"> $(document).ready(function () { var theme = ""; // prepare the data var data = new Array(); var firstNames = [ "Andrew", "Nancy", "Shelley", "Regina", "Yoshi", "Antoni", "Mayumi", "Ian", "Peter", "Lars", "Petra", "Martin", "Sven", "Elio", "Beate", "Cheryl", "Michael", "Guylene" ]; var lastNames = [ "Fuller", "Davolio", "Burke", "Murphy", "Nagase", "Saavedra", "Ohno", "Devling", "Wilson", "Peterson", "Winkler", "Bein", "Petersen", "Rossi", "Vileid", "Saylor", "Bjorn", "Nodier" ]; var productNames = [ "Black Tea", "Green Tea", "Caffe Espresso", "Doubleshot Espresso", "Caffe Latte", "White Chocolate Mocha", "Cramel Latte", "Caffe Americano", "Cappuccino", "Espresso Truffle", "Espresso con Panna", "Peppermint Mocha Twist" ]; var priceValues = [ "2.25", "1.5", "3.0", "3.3", "4.5", "3.6", "3.8", "2.5", "5.0", "1.75", "3.25", "4.0" ]; // generate sample data. var generatedata = function (startindex, endindex) { var data = {}; for (var i = startindex; i < endindex; i++) { var row = {}; var productindex = Math.floor(Math.random() * productNames.length); var price = parseFloat(priceValues[productindex]); var quantity = 1 + Math.round(Math.random() * 10); row["id"] = i; row["firstname"] = firstNames[Math.floor(Math.random() * firstNames.length)]; row["lastname"] = lastNames[Math.floor(Math.random() * lastNames.length)]; row["productname"] = productNames[productindex]; row["price"] = price; row["quantity"] = quantity; row["total"] = price * quantity; data[i] = row; } return data; } var source = { datatype: "array", localdata: {}, totalrecords: 10000001 }; // load virtual data. var rendergridrows = function (params) { var data = generatedata(params.startindex, params.endindex); return data; } var totalcolumnrenderer = function (row, column, cellvalue) { var cellvalue = $.jqx.dataFormat.formatnumber(cellvalue, 'c2'); return '<span style="margin: 6px 3px; font-size: 12px; float: right; font-weight: bold;">' + cellvalue + '</span>'; } var dataAdapter = new $.jqx.dataAdapter(source); $("#jqxgrid").jqxGrid( { width: 670, autoheight: true, source: dataAdapter, theme: theme, selectionmode: 'checkbox', virtualmode: true, pageable: true, rendergridrows: rendergridrows, columns: [ { text: 'Id', datafield: 'id', width: 50 }, { text: 'First Name', datafield: 'firstname', width: 100 }, { text: 'Last Name', datafield: 'lastname', width: 100 }, { text: 'Product', datafield: 'productname', width: 180 }, { text: 'Quantity', datafield: 'quantity', width: 70, cellsalign: 'right' }, { text: 'Unit Price', datafield: 'price', width: 70, cellsalign: 'right', cellsformat: 'c2' }, { text: 'Total', datafield: 'total', cellsrenderer: totalcolumnrenderer, width: 100, cellsalign: 'right' } ] }); }); </script></head><body class='default'> <div id='jqxWidget' style="font-size: 13px; font-family: Verdana; float: left;"> <div id="jqxgrid"></div> </div></body></html>
Hi jqWidgets Team,
Form code above, just see when selected all row and click from last page to 2-3 previous pages now see an incredible speed. (if you use ie7-8 it crash and not responding)
Can you fixed this by changed a select all function meaning to all 10 row per current page when virtualmode is true.Thank you.
October 4, 2013 at 10:17 am selectionmode: 'checkbox', virtualmode: true and Items over 1m problem? #30214Hi Sacrifice,
If functions as expected. We will not make any changes in that. When you select one million rows in a slow browser like IE7/IE8, it will take some time.
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.com/October 4, 2013 at 12:23 pm selectionmode: 'checkbox', virtualmode: true and Items over 1m problem? #30228Hi jqWidgets Team,
Or can you add some property to select all data or select all per page?
Here it’s a runtime list from a last page to previous page on code above,
[Firefox Nightly 27.0a1] 8.92 – 9.36 sec
[Firefox 24.0] 14.13 – 16.70 sec
[Chrome V 30.0.1599.66 m] 3.44 – 4.60 sec
[IE9] 16.11 – 20.31 sec
[IE8] 36.71 – 51.40 sec or not responding
[IE7] not respondingThank you.
October 4, 2013 at 12:26 pm selectionmode: 'checkbox', virtualmode: true and Items over 1m problem? #30231Hi Sacrifice,
Such property is not in our plans and we will probably not implement it. Thank you for sharing results how much time takes to select a million records on your PC and to update the selection after that.
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.com/December 12, 2013 at 3:46 pm selectionmode: 'checkbox', virtualmode: true and Items over 1m problem? #46426Hi jqWidgets Team,
Can you please change your mind about not implementing the per-page select all feature? Maybe even better would be to be able to restrict selection targets to visible rows only. That would, I guess, handle both paging, filtering and grouping as well, but I might be mistaken.
Without this feature the checkbox selection mode has very little use. Also, it would be nice to have some events fired before and after selection actually occurs with possibility to intercept and cancel selection (in case of the ‘before’ event). The passed event should have a list of the row indexes to be / alreaqy selected.
Thank you
-
AuthorPosts
You must be logged in to reply to this topic.