JQuery Bootgrid,搜索找不到格式化的列

时间:2016-10-11 09:57:20

标签: jquery jquery-plugins jquery-bootgrid

我有一个JQuery Bootgrid,需要两个格式化程序才能正确格式化日期和欧元值列(在行中,我将日期存储为字符串,格式为YYYYMMDD,以便在用户选择订购该列时正确排序列,而表输出的日期格式为DD / MM / YYYY。另外,我只需将€符号添加到欧元输出值。

简单地说,JQuery Bootgrid的默认搜索功能会搜索原始值,而不是格式化值,而我肯定需要向用户提供搜索格式化值的功能。如果您有解决方案甚至解决方法,请帮助我!

2 个答案:

答案 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需要从代码中删除,这意味着搜索还会查看设置为隐藏的列。