我很难对 DataTables 对象中的布尔列上的三态下拉列表(任意、是和否(应用搜索。
下面是我数据的示例行:
{
"Id": 1,
"FirstName": "John",
"LastName": "Doe",
"Email": "JohnDoe@email.com",
"Elevated": true,
"Activated": true
}
这是我对下拉列表的标记:
<select class="form-control" id="elevated">
<option value="">Any</option>
<option value="true">Yes</option>
<option value="false">No</option>
</select>
这就是我用来搜索列的内容:
const elevated = $("#elevated option:selected").val();
grid.column("Elevated:name").search(elevated).draw();
正在发生的事情是,只要下拉选项为任何,它就会清除搜索,但是每当下拉选项为是或否时,它不返回任何行。
如果我将选项值设置为 1/0 还是在搜索方法中指定 RegEx 参数,都没有关系。结果是一样的。
在浏览了一堆论坛之后,我发现了发生了什么。我正在使用columns.render根据单元格的值显示一个图标。这样做会导致它弄乱 columns.search。相反,我将columns.render替换为columns.createdCell,操作现有的DOM以显示我的图标,然后columns.search按预期工作。