我有一个 JQuery Bootgrid,其中包含两个格式化程序,需要正确格式化日期和欧元值列(在行中,我将日期存储为字符串,格式为 YYYYMMDD,以便在用户选择订购该列时正确排序该列,而表输出的日期格式为 DD/MM/YYYY。此外,我只是将 € 符号添加到欧元输出值中。
简而言之,JQuery Bootgrid 的默认搜索功能会搜索原始值,而不是格式化的值,而我当然需要让用户能够搜索格式化的值。如果您有解决方案甚至解决方法,请帮助我!
我有一个 JQuery Bootgrid,其中包含两个格式化程序,需要正确格式化日期和欧元值列(在行中,我将日期存储为字符串,格式为 YYYYMMDD,以便在用户选择订购该列时正确排序该列,而表输出的日期格式为 DD/MM/YYYY。此外,我只是将 € 符号添加到欧元输出值中。
简而言之,JQuery Bootgrid 的默认搜索功能会搜索原始值,而不是格式化的值,而我当然需要让用户能够搜索格式化的值。如果您有解决方案甚至解决方法,请帮助我!
如果您正在处理数据源,则始终可以从后端(即 json 提供程序)规范化搜索。
增强现有表 - 好吧,Grid.prototype.search 就是功能。
我遇到了类似的问题,搜索正在查看原始数据而不是格式化数据,但需要原始数据进行排序。
我所做的是data-searchable="false"
在格式化的列上设置,然后添加一个新列,其中日期已经由我自己格式化。然后将此新列设置为data-visible="false"
。表结构大致如下:
<table>
<thead>
<tr>
<th data-column-id="date" data-formatter="dateNoTimeFormat" data-searchable="false">Report Date</th>
<th data-column-id="formattedDate" data-visible="false"></th>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo $reportDate; ?></td>
<td><?php echo date('d/m/Y', strtotime($reportDate)); ?></td>
</tr>
</tbody>
</table>
默认情况下,bootgrid 搜索不包括隐藏列,因此源代码也需要稍作修改。containsPhrase(row)
在jquery.bootgrid.js
(v1.3.1 中的第 172 行)中有一个函数,它的if
语句如下:
if (column.searchable && column.visible &&
column.converter.to(row[column.id]).search(searchPattern) > -1)
{
return true;
}
需要从代码中&& column.visible
删除,这意味着搜索还将查看设置为隐藏的列。