Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

jQWidgets jqxGrid filter Property

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

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=”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>

Example 1: The below example illustrates the jqxGrid filter property in jQWidgets.

HTML




<!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”.

HTML




<!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:

 

Reference: https://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxgrid/jquery-grid-api.htm?search=


My Personal Notes arrow_drop_up
Last Updated : 29 Mar, 2023
Like Article
Save Article
Similar Reads
Related Tutorials