javascript - 我无法过滤或搜索
问题描述
我有一个大问题,我通过了最后 2 个小时。
我有这个数据表:
const tableauAjoutCandidat = $("#tableauAjoutCandidats").DataTable({
select: "multi",
searching: false,
columns: [
{
name: "nomPrenom",
title: "NOM Prénom",
data: "nom"
},
{
name: "dateNaissance",
title: "Date de naissance",
data: "datenaissance",
render: function(data) {
return moment(data, 'YYYY-MM-DD').format('DD/MM/YYYY');
}
},
{
name: "besoins",
title: "Besoins",
data: "besoins"
},
{
name: "epr",
title: "EPR",
data: "epr",
render: function(data) {
if (data == false) {
return '<input class="checkboxEPR" type="checkbox" value="" />';
} else {
return '<input class="checkboxEPR" type="checkbox" value="" checked />';
}
}
},
{
name: "demande",
title: "Demande",
data: 'demande'
}
],
ajax: {
url: Routing.generate("exercicepratique_candidats_potentiels", {epId: epId}),
dataSrc: 'candidats'
},
columnDefs: [
{ targets: 1, "type": "date-euro" },
]
});
在此 DataTabla 中,最后一列“需求”包含TRUE
or FALSE
,我想过滤以仅在TRUE
未选中复选框时查看行,并在选中时查看所有行。
所以我尝试了多种方法。
首先,我尝试使用过滤器制作它,如下所示:
tableauAjoutCandidat.column('demande:name').data().filter(function (value, index) {
const checked = $('#filtreDemandeConvocationEP').is(':checked');
if (!checked && value != true) {
return false;
}
return true;
});
$('#filtreDemandeConvocationEP').on('change', function() {
tableauAjoutCandidat.draw();
)};
但它根本不起作用......
然后我尝试通过搜索来实现,如下所示:
$('#filtreDemandeConvocationEP').on('change', function() {
const checked = $('#filtreDemandeConvocationEP').is(':checked');
if (!checked) {
tableauAjoutCandidat.column('demande:name').search('true').draw();
} else {
tableauAjoutCandidat.column('demande:name').draw();
}
});
但结果相同...
所以现在我不知道该尝试什么......我希望有人可以帮助我。谢谢 !
PS:对不起我的英语,因为你可以看到它不是我的母语。
解决方案
您是否尝试过启用搜索?我看到你设置了 search = false。
根据他们的文档:请注意,如果您希望使用 DataTables 的搜索功能,则必须保持正确
https://datatables.net/reference/option/searching
const tableauAjoutCandidat = $("#tableauAjoutCandidats").DataTable({
select: "multi",
searching: true,
columns: [
{
name: "nomPrenom",
title: "NOM Prénom",
data: "nom"
},
{
name: "dateNaissance",
title: "Date de naissance",
data: "datenaissance",
render: function(data) {
return moment(data, 'YYYY-MM-DD').format('DD/MM/YYYY');
}
},
{
name: "besoins",
title: "Besoins",
data: "besoins"
},
{
name: "epr",
title: "EPR",
data: "epr",
render: function(data) {
if (data == false) {
return '<input class="checkboxEPR" type="checkbox" value="" />';
} else {
return '<input class="checkboxEPR" type="checkbox" value="" checked />';
}
}
},
{
name: "demande",
title: "Demande",
data: 'demande'
}
],
ajax: {
url: Routing.generate("exercicepratique_candidats_potentiels", {epId: epId}),
dataSrc: 'candidats'
},
columnDefs: [
{ targets: 1, "type": "date-euro" },
]
});
推荐阅读
- wordpress - 子域中用于在线售票的不同 WordPress 主题
- python - 为 pandas.io.json_normalize 提供默认值
- python - 如何使用 Numpy 更改以零结尾的字节值?
- android - 实现类似 Delivery 应用的地图设计的 Swiggy
- ios - 在 Safari 移动版中从控制台打开链接
- css - CSS 释放空间时向左或向右扩展网格项目
- javascript - 使用 JQuery 和 Javascript 中的 if 语句在 .html 中编写
- r - 循环 data.table R 中的列
- typescript - 引导可执行脚本的 Nest.js 依赖树(没有服务器)
- pdf - 为什么 Ghostscript 不适用于某些 pdf