ignite-ui infrafistics PERFORMANCE
30K cells
by wwwroot
HTML
<script src="http://igniteui.com/js/modernizr.min.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
<script src="http://cdn-na.infragistics.com/igniteui/2015.2/latest/js/infragistics.core.js"></script>
<script src="http://cdn-na.infragistics.com/igniteui/2015.2/latest/js/infragistics.lob.js"></script>
<script src="http://igniteui.com/js-data/northwindProducts"></script>
<link href="http://cdn-na.infragistics.com/igniteui/2015.2/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet"></link>
<link href="http://cdn-na.infragistics.com/igniteui/2015.2/latest/css/structure/infragistics.css" rel="stylesheet"></link>
<table id="grid1"></table>
JavaScript
$(function() {
function onEditCellEnded(evt, ui) {
data_source[ui.rowID - 1][ui.columnKey] = !ui.value;
$('#grid1').igGrid("dataBind");
}
function create30kcells() {
var data = [];
for (i = 1; i < 301; i++) {
var row = {
"ProductID": i,
"ProductName": (new Date()).toISOString(),
"exclude-all": true
};
for (j = 1; j < 101; j++) {
var key = "Exclude" + j;
row[key] = true;
columnSettings.push({headerText:key,key:key,dataType:"bool",readOnly:false})
}
data.push(row);
}
return data;
}
var columnSettings = [{
headerText: "",
key: "ProductID",
hidden: true
}, {
headerText: "Product Name",
key: "ProductName",
readOnly: true
}, {
headerText: "All",
key: "exclude-all",
readOnly: false
}];
var data_source = create30kcells();
$('#grid1').igGrid({
dataSource: data_source,
primaryKey: "ProductID",
responseDataKey: "results",
dataSourceType: "json",
width: "100%",
enableHoverStyles: false,
autoGenerateColumns: false,
columns: columnSettings,
renderCheckboxes: true,
features: [{
name: "Filtering",
allowFiltering: true,
caseSensitive: false
}, {
name: 'Sorting',
type: "local",
}, {
name: "Updating",
validation: false,
enableAddRow: false,
editMode: "cell",
excelNavigationMode: true,
enableDeleteRow: false,
editCellEnded: onEditCellEnded,
editCellStarted: function() {
$("#grid1").igGridUpdating("endEdit", true, true);
}
}]
});
});