jQWidgets is a JavaScript framework for making web-based applications for PC and mobile devices. It is a very powerful, optimized, platform-independent, and widely supported framework. The jqxGrid is used to illustrate a jQuery widget that shows data in tabular form. Moreover, it renders full support for connecting with data, as well as paging, grouping, sorting, filtering, and editing.
The filter property is a callback function that is used to customize filtering. It is used to override the filtering that is inbuilt. This property is invoked whenever the grid is filtered. It renders a value of type boolean or returns "undefined". It is of function type and its default value is "null".
Syntax:
- Set the filter property:
$('Selector').jqxGrid({ filter: null });- Return the filter property:
var filter = $('Selector').jqxGrid('filter');The values that this function can hold are as follows.
- cellValue: It is the present value of the cell.
- rowData: It is a JSON object that holds the data of the present row.
- dataField: It is the data field of the filter column.
- filterGroup: It is the group of the stated filters.
- defaultFilterResult: It is the stated default result of the filter.
Linked Files: Download jQWidgets from the given link. In the HTML file, locate the script files in the downloaded folder.
<link rel=”stylesheet” href=”jqwidgets/styles/jqx.base.css” type=”text/css” />
<script type=”text/javascript” src=”scripts/jquery-1.11.1.min.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqxcore.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqx-all.js”></script>
<script type="text/javascript" src="https://www.geeksforgeeks.org/jqwidgets/jqxdata.js"></script>
<script type="text/javascript" src="https://www.geeksforgeeks.org/jqwidgets/jqxbuttons.js"></script>
<script type="text/javascript" src="https://www.geeksforgeeks.org/jqwidgets/jqxscrollbar.js"></script>
<script type="text/javascript" src="https://www.geeksforgeeks.org/jqwidgets/jqxmenu.js"></script>
<script type="text/javascript" src="https://www.geeksforgeeks.org/jqwidgets/jqxgrid.js"></script>
<script type="text/javascript" src="https://www.geeksforgeeks.org/jqwidgets/jqxgrid.selection.js"></script>
Example 1: The below example illustrates the jqxGrid filter property in jQWidgets.
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet"
href="jqwidgets/styles/jqx.base.css"
type="text/css" />
<script type="text/javascript"
src="scripts/jquery-1.11.1.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/jqxgrid.js">
</script>
<script type="text/javascript"
src="jqwidgets/jqxgrid.selection.js">
</script>
<script type="text/javascript"
src="jqwidgets/jqxgrid.columnsresize.js">
</script>
</head>
<body>
<center>
<h1 style="color: green">
GeeksforGeeks
</h1>
<h3>
jQWidgets jqxGrid filter property
</h3><br />
<div id="jqxg"></div>
<div id="log"></div>
</center>
<script type="text/javascript">
$(document).ready(function () {
var d = new Array();
var subjectNames =
["C++", "Scala", "Java", "C", "R", "JavaScript"];
var pageNumber =
["7", "8", "12", "11", "10", "19"];
for (var j = 0; j < 50; j++) {
var r = {};
r["subjectnames"] =
subjectNames[(Math.floor(Math.random() * subjectNames.length))];
r["pagenumber"] =
pageNumber[(Math.floor(Math.random() * pageNumber.length))];
d[j] = r;
}
var src = {
localdata: d,
datatype: "array",
};
var data_Adapter = new $.jqx.dataAdapter(src);
$("#jqxg").jqxGrid({
source: data_Adapter,
theme: 'energyblue',
filterable: true,
filter: function () {
$("#log").text("Filtered!")
},
height: "240px",
width: "270px",
columns: [
{
text: "Subject Name",
columntype: "textbox",
filtertype: "input",
datafield: "subjectnames",
width: "90px",
},
{
text: "Page No.",
datafield: "pagenumber",
filtertype: "checkedlist",
width: "90px",
},
{
text: "Exam",
datafield: "exam",
columntype: "checkbox",
filtertype: "bool",
width: "90px",
},
],
});
});
</script>
</body>
</html>
Output:

Example 2: Below is another example that illustrates the jqxGrid filter property in jQWidgets by setting its value as "null".
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet"
href="jqwidgets/styles/jqx.base.css"
type="text/css" />
<script type="text/javascript"
src="scripts/jquery-1.11.1.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/jqxgrid.js">
</script>
<script type="text/javascript"
src="jqwidgets/jqxgrid.selection.js">
</script>
<script type="text/javascript"
src="jqwidgets/jqxgrid.columnsresize.js">
</script>
</head>
<body>
<center>
<h1 style="color: green">
GeeksforGeeks
</h1>
<h3>
jQWidgets jqxGrid filter property
</h3><br />
<div id="jqxg"></div>
<div>
<input type="button"
id="jqxBtn"
style="margin-top:25px"
value="Click here" />
</div>
<div id="log"></div>
</center>
<script type="text/javascript">
$(document).ready(function () {
var d = new Array();
var subjectNames =
["C++", "Scala", "Java", "C", "R", "JavaScript"];
var pageNumber =
["7", "8", "12", "11", "10", "19"];
for (var j = 0; j < 50; j++) {
var r = {};
r["subjectnames"] =
subjectNames[(Math.floor(Math.random() * subjectNames.length))];
r["pagenumber"] =
pageNumber[(Math.floor(Math.random() * pageNumber.length))];
d[j] = r;
}
var src = {
localdata: d,
datatype: "array",
};
var data_Adapter = new $.jqx.dataAdapter(src);
$("#jqxg").jqxGrid({
source: data_Adapter,
theme: 'energyblue',
filterable: true,
filter: null,
height: "240px",
width: "270px",
columns: [
{
text: "Subject Name",
columntype: "textbox",
filtertype: "input",
datafield: "subjectnames",
width: "90px",
},
{
text: "Page No.",
datafield: "pagenumber",
filtertype: "checkedlist",
width: "90px",
},
{
text: "Exam",
datafield: "exam",
columntype: "checkbox",
filtertype: "bool",
width: "90px",
},
],
});
$("#jqxBtn").jqxButton({
width: "180px",
height: "30px",
});
$("#jqxBtn").on("click", function () {
var f = $('#jqxg').jqxGrid('filter');
$("#log").text(f)
});
});
</script>
</body>
</html>
Output:
