jQWidgets jqxDataTable filterable属性

以下是关于“jQWidgets jqxDataTable filterable属性”的完整攻略,包含两个示例说明:

简介

jqx 控件提供了 filterable 属性,用于在表格中添加选功能。通过设置 filterable 属性,我们可以控制筛选的方式、筛选的字段、筛选的条件等。

详细攻略

以下是 jqxDataTable 控件的 filterable 属性的详细攻略:

filterable属性

filterable 属性是 jqxDataTable 控件的一个属性,用于在表格中添加筛选。该属性包含以下几个属性:

  • autoFilter:是否自动筛选,默认为 false
  • filterFunction:自定义筛选函数。
  • filterMode:筛选模式,可选值为 defaultadvancedexcel
  • filterRowHeight:筛选行的高度,默认为 30
  • filterDelay:筛选延迟时间,单位为毫秒,默认为 500
  • filterPlaceHolder:筛选框的占位符。
  • filterIcons:筛选图标的配置。
  • filterType:筛选类型,可选值为 inputlistcheckedlist
  • filterable:是否启用筛选功能,默认为 false
  • showFilterRow:是否显示筛选行,默认为 false
  • showFilterIcons:是否显示筛选图标,默认为 false

示例1

在此示例中,我们创建了一个 jqxDataTable 控件,并使用 filterable 属性来添加筛选功能。在筛选行的 filter 事件中,我们使用 applyFilters() 方法来应用筛选条件。

<div id="jqxdatatable"></div>
<script>
    $(document).ready(function () {
        // 创建 jqxDataTable 控件
        var data = [
            { name: '张三', age: 20, gender: '男', address: '北京市' },
            { name: '李四', age: 25, gender: '女', address: '上海市' },
            { name: '王五', age: 30, gender: '男', address: '州市' },
            { name: '赵六', age: 35, gender: '女', address: '深圳市' },
            { name: '钱七', age: 40, gender: '男', address: '杭州市' },
            { name: '孙八', age: 45, gender: '女', address: '南京市' },
            { name: '周九', age: 50, gender: '男', address: '成都市' },
            { name: '吴十', age: 55, gender: '女', address: '重庆市' }
        ];
        var source = {
            datatype: 'json',
            datafields: [
                { name: 'name', type: 'string' },
                { name: 'age', type: 'number' },
                { name: 'gender', type: 'string' },
                { name: 'address', type: 'string' }
            ],
            localdata: data,
            totalrecords: data.length
        };
        var dataAdapter = new $.jqx.dataAdapter(source);
        $("#jqxdatatable").jqxDataTable({
            columns: [
                { text: '姓名', datafield: 'name' },
                { text: '年龄', datafield: 'age' },
                { text: '性别', datafield: 'gender' },
                { text: '地址', datafield: 'address' }
            ],
            source: dataAdapter,
            filterable: true,
            showFilterRow: true,
            filterRowHeight: 30,
            filterDelay: 500,
            filterPlaceHolder: '输入关键字',
            filterIcons: {
                apply: 'jqx-icon-search',
                cancel: 'jqx-icon-close'
            }
        });

        // 绑定筛选行的 filter 事件
        $("#jqxdatatable").on('filter', function () {
            $("#jqxdatatable").jqxDataTable('applyFilters');
        });
    });
</script>

在上述代码中,我们创建了一个 jqxDataTable 控件,并使用 filterable 属性来添加筛选功能。在筛选行的 filter 事件中,我们使用 applyFilters() 方法来应用筛选条件。

示例2

在此示例中,我们创建了一个 jqxDataTable 控件,并使用 filterable 属性来添加筛选功能。在筛选行的 filter 事件中,我们使用 applyFilters() 方法来应用筛选条件,并将筛选结果显示在另一个 jqxDataTable 控件中。

<div id="jqxdatatable"></div>
<div id="resultdatatable"></div>
<script>
    $(document).ready(function () {
        // 创建 jqxDataTable 控件
        var data = [
            { name: '张三', age: 20, gender: '男', address: '北京市' },
            { name: '李四', age: 25, gender: '女', address: '上海市' },
            { name: '王五', age: 30, gender: '男', address: '州市' },
            { name: '赵六', age: 35, gender: '女', address: '深圳市' },
            { name: '钱七', age: 40, gender: '男', address: '杭州市' },
            { name: '孙八', age: 45, gender: '女', address: '南京市' },
            { name: '周九', age: 50, gender: '男', address: '成都市' },
            { name: '吴十', age: 55, gender: '女', address: '重庆市' }
        ];
        var source = {
            datatype: 'json',
            datafields: [
                { name: 'name', type: 'string' },
                { name: 'age', type: 'number' },
                { name: 'gender', type: 'string' },
                { name: 'address', type: 'string' }
            ],
            localdata: data,
            totalrecords: data.length
        };
        var dataAdapter = new $.jqx.dataAdapter(source);
        $("#jqxdatatable").jqxDataTable({
            columns: [
                { text: '姓名', datafield: 'name' },
                { text: '年龄', datafield: 'age' },
                { text: '性别', datafield: 'gender' },
                { text: '地址', datafield: 'address' }
            ],
            source: dataAdapter,
            filterable: true,
            showFilterRow: true,
            filterRowHeight: 30,
            filterDelay: 500,
            filterPlaceHolder: '输入关键字',
            filterIcons: {
                apply: 'jqx-icon-search',
                cancel: 'jqx-icon-close'
            }
        });

        // 创建结果表格
        var resultSource = {
            datatype: 'json',
            datafields: [
                { name: 'name', type: 'string' },
                { name: 'age', type: 'number' },
                { name: 'gender', type: 'string' },
                { name: 'address', type: 'string' }
            ],
            localdata: data,
            totalrecords: data.length
        };
        var resultDataAdapter = new $.jqx.dataAdapter(resultSource);
        $("#resultdatatable").jqxDataTable({
            columns: [
                { text: '姓名', datafield: 'name' },
                { text: '年龄', datafield: 'age' },
                { text: '性别', datafield: 'gender' },
                { text: '地址', datafield: 'address' }
            ],
            source: resultDataAdapter
        });

        // 绑定筛选行的 filter 事件
        $("#jqxdatatable").on('filter', function () {
            $("#jqxdatatable").jqxDataTable('applyFilters');
            var filters = $("#jqxdatatable").jqxDataTable('getFilters');
            var resultData = data.filter(function (item) {
                var match = true;
                for (var i = 0; i < filters.length; i++) {
                    var filter = filters[i];
                    if (filter.datafield === 'age') {
                        match = match && eval(item[filter.datafield] + filter.condition + filter.value);
                    } else {
                        match = match && item[filter.datafield].toString().toLowerCase().indexOf(filter.value.toLowerCase()) !== -1;
                    }
                }
                return match;
            });
            var resultSource = {
                datatype: 'json',
                datafields: [
                    { name: 'name', type: 'string' },
                    { name: 'age', type: 'number' },
                    { name: 'gender', type: 'string' },
                    { name: 'address', type: 'string' }
                ],
                localdata: resultData,
                totalrecords: resultData.length
            };
            var resultDataAdapter = new $.jqx.dataAdapter(resultSource);
            $("#resultdatatable").jqxDataTable({ source: resultDataAdapter });
        });
    });
</script>

在上述代码中,我们创建了一个 jqxDataTable 控件,并使用 filterable 属性来添加筛选功能。在筛选行的 filter 事件中,我们使用 applyFilters() 方法来应用筛选条件,并将筛选结果显示在另一个 jqxDataTable 控件中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQWidgets jqxDataTable filterable属性 - Python技术站

(0)
上一篇 2023年5月11日
下一篇 2023年5月11日

相关文章

  • jQWidgets jqxGrid getcolumnproperty()方法

    以下是关于“jQWidgets jqxGrid getcolumnproperty()方法”的完整攻略,包含两个示例说明: 简介 jqx 控件的 getcolumnproperty() 方法用于获取表格中指定列的属性。该方法可以用于获取的宽度、标题、数据字段等属性。 完整攻略 以下是 jqxGrid 控件 columnproperty() 方法的完整攻略: …

    jquery 2023年5月10日
    00
  • jQWidgets jqxWindow collapseAnimationDuration属性

    当使用jQWidgets插件的jqxWindow组件时,可以使用collapseAnimationDuration属性来设置窗口收缩/展开的动画持续时间(以毫秒为单位)。在这篇攻略中,我们将详细介绍collapseAnimationDuration属性及其用法,并提供两个示例来说明如何使用它。 1. collapseAnimationDuration属性介绍…

    jquery 2023年5月12日
    00
  • jQWidgets jqxDataTable rowSelect事件

    以下是关于“jQWidgets jqxDataTable rowSelect事件”的完整攻略,包含两个示例说明: 简介 jqx件的 rowSelect 在行被选中后触发,通过监听事件,在行被选中后执行自定义的操作例如显示子格、更新界面。 攻 以下是 jqx 控 rowSelect 事件的整攻略: 监听 rowSelect 事件 在 jqxDataTable …

    jquery 2023年5月11日
    00
  • 使用jQuery动态加载js脚本文件的方法

    下面是使用jQuery动态加载JS脚本文件的完整攻略: 一、通过jQuery的$.getScript()方法加载JS脚本文件 首先,需要加载jQuery库。可以通过以下代码在HTML页面中引入: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.mi…

    jquery 2023年5月27日
    00
  • jquery ui dialog里调用datepicker的问题

    当我们使用jQuery UI Dialog弹出窗口时,若需要在弹出窗口中使用日历控件datepicker,则需要注意下面的几点: 步骤一:引入jQuery UI和jQuery UI Datepicker 首先要在头部引入jQuery和jQuery UI库,并且添加jQuery UI Datepicker的CSS和JS文件。 <head> <…

    jquery 2023年5月28日
    00
  • jquery siblings获取同辈元素用法实例分析

    jQuery Siblings方法可以获取元素的所有同级元素。在本篇攻略中,我们会通过一些示例来演示Sibling方法的用法,以帮助读者更好地理解和掌握。 1. 使用Siblings方法 首先,让我们来看一下Siblings方法的基本语法: $(selector).siblings(filter) 该方法可以接收一个可选参数用于筛选同级元素。如果省略筛选器,…

    jquery 2023年5月28日
    00
  • jquery利用json实现页面之间传值的实例解析

    下面我将详细讲解“jquery利用json实现页面之间传值的实例解析”的完整攻略。 什么是JSON? JSON(JavaScript Object Notation),是一种轻量级的数据交换格式。它基于JavaScript Programming Language Standard ECMA-262 3rd Edition – December 1999的一…

    jquery 2023年5月28日
    00
  • jQuery ready函数滥用分析

    下面是针对“jQuery ready函数滥用分析”的完整攻略及示例说明。 1. 什么是jQuery ready函数? jQuery ready函数是当文档(DOM)已经加载完毕后执行的事件处理函数。在这个事件处理函数中,可以安全地执行jQuery代码,因为此时文档中的所有元素及其属性都已经被正确地解析和加载。jQuery ready函数的一般形式如下: $(…

    jquery 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部