我有一个JQuery Bootgrid,需要两个格式化程序才能正确格式化日期和欧元值列(在行中,我将日期存储为字符串,格式为YYYYMMDD,以便在用户选择订购该列时正确排序列,而表输出的日期格式为DD / MM / YYYY。另外,我只需将€符号添加到欧元输出值。
简单地说,JQuery Bootgrid的默认搜索功能会搜索原始值,而不是格式化值,而我肯定需要向用户提供搜索格式化值的功能。如果您有解决方案甚至解决方法,请帮助我!
答案 0 :(得分:1)
如果您正在处理数据源,则可以始终从后端(即json提供程序)规范化搜索。
增强现有表格 - 好吧,Grid.prototype.search就是这个功能。
答案 1 :(得分:1)
我遇到了类似的问题,搜索是查看原始数据而不是格式化数据,但需要原始数据进行排序。
我所做的是在格式化列上设置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
需要从代码中删除,这意味着搜索还会查看设置为隐藏的列。