jxqGrid filter exception error
Demonstrates that having a number in the value breaks the filter functions.
by JC Wren
HTML
<link rel="stylesheet" href="https://jqwidgets.com/public/jqwidgets/styles/jqx.base.css">
<link rel="stylesheet" href="https://jqwidgets.com/public/jqwidgets/styles/jqx.energyblue.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.6.0/lodash.min.js"></script>
<script src="https://jqwidgets.com/public/jqwidgets/jqx-all.js"></script>
<div id='jqxgrid'></div>
JavaScript
//
// Test by clicking the 'Select Filter', uncheck '(Select All)', then check the 'Adult' checkbox
//
// adult_label = 'Adult 10' causes 'Uncaught TypeError: Cannot read property 'toString' of null' exception
// adult_label = 'Adult' works correctly
// adult_lavel = 'Adult 10x' also works correctly
//
var adult_label = 'Adult 10';
var adult_value = 'ADULT';
var ages = [{
label: adult_label,
value: adult_value,
}, {
label: 'Junior',
value: 'JUNIOR',
}, {
label: 'Senior',
value: 'SENIOR',
}, {
label: 'Super Senior',
value: 'SUPSNR',
}];
var agesSource = {
datatype: 'array',
datafields: [{
name: 'value',
type: 'string'
}, {
name: 'label',
type: 'string'
}],
localdata: ages
};
var agesAdapter = new $.jqx.dataAdapter(agesSource, {
autoBind: true
});
var players = [{
sh_fn: 'Steve',
sh_age: adult_value,
}, {
sh_fn: 'Carmen',
sh_age: 'JUNIOR'
}, {
sh_fn: 'Bilal',
sh_age: 'SENIOR'
}, {
sh_fn: 'Peter',
sh_age: adult_value
}];
var playerSource = {
datatype: 'array',
datafields: [{
name: 'sh_fn',
type: 'string'
}, {
name: 'sh_age',
type: 'string'
}, {
name: 'sh_age_fmt',
value: 'sh_age',
values: {
source: agesAdapter.records,
value: 'value',
name: 'label'
}
}],
localdata: players,
updaterow: function (rowid, newdata, commit) {
commit(true);
}
};
var playerAdapter = new $.jqx.dataAdapter(playerSource);
$('#jqxgrid').jqxGrid({
width: '300px',
source: playerAdapter,
autoheight: true,
altrows: true,
editable: false,
filterable: true,
showfilterrow: true,
autoshowfiltericon: true,
columns: [{
text: 'First Name',
datafield: 'sh_fn'
}, {
text: 'Age',
datafield: 'sh_age',
displayfield: 'sh_age_fmt',
width: 95,
...