jQWidgets jqxDataTable filterMode属性

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

简介

jqx 控件提供了 filterMode 属性,用于设置表格的筛选模式。通过设置 filterMode 属性,我们可以控制表格的筛选方式,以适应不同的需求。

详细攻略

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

filterMode属性

filterMode 属性是 jqxDataTable 控件的一个属性,用于设置表格的筛选模式。该属性包含以下几个选项:

  • default:默认的筛选模式,支持文本、数字和日期等类型的筛选。
  • advanced:高级筛选模式,支持多个条件的组合筛选。
  • excel:Excel 风格的筛选模式,支持多个条件的组合筛选,并提供了更多的筛选选项。

示例1

在此示例中,我们创建了 jqxDataTable 控件,并使用 filterMode 属性来设置表格的筛选模式为 default

<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,
            filterMode: 'default'
        });
    });
</script>

在上述代码中,我们创建了一个 jqxDataTable 控件,并使用 filterMode 属性来设置表格的筛选模式为 default

示例2

在此示例中,我们创建了一个 jqx 控件,并使用 filterMode 属性来设置表格的筛选模式为 excel。在表格的 filter 事件中,我们使用 getFilterInformation() 方法来获取筛选信息,并将其显示在另一个 jqxDataTable 控件中。

<div id="jqxdatatable"></div>
<div="result"></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,
            filterMode: 'excel',
            filter: function () {
                var filterInfo = $("#jqxdatatable").jqxDataTable('getFilterInformation');
                var resultData = data.filter(function (item) {
                    var match = true;
                    for (var i = 0; i < filterInfo.length; i++) {
                        var filter = filterInfo[i];
                        if (filter.condition === 'CONTAINS_CASE_SENSITIVE') {
                            match = match && item[filter.datafield].toString().indexOf(filter.value) !== -1;
                        } else if (filter.condition === 'CONTAINS_CASE_INSENSITIVE') {
                            match = match && item[filter.datafield].toString().toLowerCase().indexOf(filter.value.toLowerCase()) !== -1;
                        } else if (filter.condition === 'DOES_NOT_CONTAIN_CASE_SENSITIVE') {
                            match = match && item[filter.datafield].toString().indexOf(filter.value) === -1;
                        } else if (filter.condition === 'DOES_NOT_CONTAIN_CASE_INSENSITIVE') {
                            match = match && item[filter.datafield].toString().toLowerCase().indexOf(filter.value.toLowerCase()) === -1;
                        } else if (filter.condition === 'EQUAL') {
                            match = match && item[filter.datafield] == filter.value;
                        } else if (filter.condition === 'NOT_EQUAL') {
                            match = match && item[filter.datafield] != filter.value;
                        } else if (filter.condition === 'GREATER_THAN') {
                            match = match && item[filter.datafield] > filter.value;
                        } else if (filter.condition === 'LESS_THAN') {
                            match = match && item[filter.datafield] < filter.value;
                        } else if (filter.condition === 'GREATER_THAN_OR_EQUAL') {
                            match = match && item[filter.datafield] >= filter.value;
                        } else if (filter.condition === 'LESS_THAN_OR_EQUAL') {
                            match = match && item[filter.datafield] <= filter.value;
                        }
                    }
                    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);
                $("#result").jqxDataTable({ source: resultDataAdapter });
            }
        });
    });
</script>

在上述代码中,我们创建了一个 jqxDataTable 控件,并使用 filterMode 属性来设置表格的筛选模式为 excel。在表格的 filter 事件中,我们使用 getFilterInformation() 方法来获取筛选信息,并将其显示在另一个 jqxDataTable 控件中。

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

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

相关文章

  • jQWidgets jqxNavigationBar expandAnimationDuration属性

    以下是关于 jQWidgets jqxNavigationBar 组件中 expandAnimationDuration 属性的详细攻略。 jQWidgets jqxNavigationBar expandAnimationDuration 属性 jQWidgets jqxNavigationBar 的 expandAnimationDuration 属性用…

    jquery 2023年5月12日
    00
  • 如何使用JQuery在输入中选择所有焦点

    以下是关于如何使用jQuery在输入中选择所有焦点的完整攻略: 什么是焦点? 在Web开发,焦点是指当前用户正在与之交互的元素。例如,当用户在输入框中输入文本时,输入框就是具有焦点的元素。 如何使用jQuery选择所有具有焦点的元素? 可以使用以下代码来选择所有具有焦点的元素: $(":focus") 这个代码中,:focus是指选择所有…

    jquery 2023年5月12日
    00
  • JQuery调用绑定click事件的3种写法

    JQuery是一种非常常用的JavaScript框架,它可以快速简便地开发JS功能,提高开发效率。其中,绑定click事件是JQuery使用最广泛的功能之一。JQuery调用绑定click事件的3种写法包括:直接写法、.on写法和.click写法。接下来就详细讲解这3种写法的具体实现方式及其优缺点。 直接写法 直接写法就是直接在选择器后面跟上click事件的…

    jquery 2023年5月28日
    00
  • jQWidgets jqxPopover关闭事件

    以下是关于 jQWidgets jqxPopover 组件中关闭事件的详细攻略。 jQWidgets jqxPopover 关闭事件 jQWidgets jqxPopover 组件提供了 onClose 事件,该事件在弹出框关闭时触发。 语法 $(‘#popover’).on(‘close’, function (event) { // 处理关闭事件 });…

    jquery 2023年5月12日
    00
  • 如何使用jQuery EasyUI Mobile为手机设计数据列表

    如何使用jQuery EasyUI Mobile为手机设计数据列表 准备工作 要开始使用jQuery EasyUI Mobile,需要引入如下三个文件: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>jQu…

    jquery 2023年5月12日
    00
  • 如何使用jQuery在触发contextmenu事件时显示信息

    添加事件监听器 首先要添加一个事件监听器来监测contextmenu事件。可以使用jQuery中的on()方法来实现: $(selector).on("contextmenu", function(event){ //在这里编写处理代码 }); 显示信息 在事件处理函数中,可以使用event对象来获取鼠标右击事件的相关信息,比如鼠标位置等…

    jquery 2023年5月12日
    00
  • jquery.ajax的url中传递中文乱码问题的解决方法

    首先,我们需要了解一下中文乱码产生的原因。在URL传递过程中,浏览器会将中文字符进行编码,但是jQuery中的ajax方法并没有对中文字符进行编码处理,导致传递过程中出现中文乱码问题。那么如何解决这个问题呢? 解决方法 方法一:手动编码处理 我们可以采用手动编码的方式对中文字符进行处理,将中文字符进行URL编码,将编码后的字符串作为URL传递。这个过程可以通…

    jquery 2023年5月18日
    00
  • jquery .off()是如何工作的

    在jQuery中,我们可以使用.off()函数来移除事件处理程序。.off()函数可以用于移除通过.on()函数添加的事件处理程序。 .off()函数的语法 以下是.off()函数的语法: $(selector).off(event, childSelector, handler); 参数说明: selector:要移除事件处理程序的元素。 event:要移…

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