0

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

简而言之,JQuery Bootgrid 的默认搜索功能会搜索原始值,而不是格式化的值,而我当然需要让用户能够搜索格式化的值。如果您有解决方案甚至解决方法,请帮助我!

4

2 回答 2

1

如果您正在处理数据源,则始终可以从后端(即 json 提供程序)规范化搜索。

增强现有表 - 好吧,Grid.prototype.search 就是功能。

于 2016-11-04T18:27:50.940 回答
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删除,这意味着搜索还将查看设置为隐藏的列。

于 2017-10-16T10:49:57.120 回答