以下是关于“jQWidgets jqxDataTable filterable属性”的完整攻略,包含两个示例说明:
简介
jqx
控件提供了 filterable
属性,用于在表格中添加选功能。通过设置 filterable
属性,我们可以控制筛选的方式、筛选的字段、筛选的条件等。
详细攻略
以下是 jqxDataTable
控件的 filterable
属性的详细攻略:
filterable属性
filterable
属性是 jqxDataTable
控件的一个属性,用于在表格中添加筛选。该属性包含以下几个属性:
autoFilter
:是否自动筛选,默认为false
。filterFunction
:自定义筛选函数。filterMode
:筛选模式,可选值为default
、advanced
和excel
。filterRowHeight
:筛选行的高度,默认为30
。filterDelay
:筛选延迟时间,单位为毫秒,默认为500
。filterPlaceHolder
:筛选框的占位符。filterIcons
:筛选图标的配置。filterType
:筛选类型,可选值为input
、list
和checkedlist
。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技术站