从tablesorter过滤Widget不起作用

时间:2015-06-02 09:59:03

标签: javascript jquery asp.net-mvc filter tablesorter

我在MVC Razor应用程序中使用Tablesorter(2.22.1),我在添加基本过滤器行时遇到问题。 我已经在bundle中添加了脚本(js插件)。

bundles.Add(new ScriptBundle("~/bundles/initTableSort").Include(
                "~/Scripts/libs/jquery.tablesorter.js",
                "~/Scripts/libs/jquery.tablesorter.widgets.js",
                "~/Scripts/libs/jquery.tablesorter.combined.js")
);

我还使用jquery将其包含在 _Layout.html 中。我没有使用jquery.latest.js,因为在我的项目中有不同的jquery文件(新),它们被添加到_Layout。

@Scripts.Render("~/bundles/jquery")
...
@Scripts.Render("~/bundles/initTableSort")

我有自己的CSS,我不使用Tablesorter主题。 我的js功能:

$(".tablesorter").tablesorter({
    sortReset: true,
    sortRestart: true,
    widthFixed : true,

    textAttribute: 'data-sort',
    widgets: ["filter"],
    widgetOptions: {
        filter_external: '.search',
        filter_defaultFilter: { 1: '~{query}' },
        filter_columnFilters: true,
        filter_placeholder: { search: 'Search...' },
        filter_saveFilters: true,
        filter_reset: '.reset'
    },
    headers: {
        'th.smallChart, th.errorLink': {
            sorter: false,
            filter: false
        },
        'th.errorDifference': {
            sorter: 'data'
        }
    }

});

表中的数据由foreach循环呈现,但标题和表具有所需的类/ ID。我没有粘贴表格代码,因为它太长了,我觉得它看起来没有问题。

在排序之后,重置排序(在第三次点击之后),自定义解析器工作正常,但是包含Widget'Filter'只给我一行来为每个列写一个过滤查询,但它不起作用。我可以写一些东西,但之后不会过滤表格。我不知道为什么。 Inspect没有显示任何错误。

拜托,有人可以帮助我并写下我做错了吗?

编辑1

我甚至使用此文档Basic Filter Tablesorter Documentation中的数据创建新项目,我仍然有同样的问题,所以我做错了什么,但我不知道在哪里和哪里。 enter image description here

2 个答案:

答案 0 :(得分:33)

问题已解决

问题出现在.css主题文件中...我没有链接.css蓝色主题文件,因为我使用自己的css,但没有关于你必须添加部分.css主题文件的信息使用过滤。

你必须只添加

/* rows hidden by filtering (needed for child rows) */
.tablesorter .filtered {
    display: none;
}

/* ajax error row */
.tablesorter .tablesorter-errorRow td {
    text-align: center;
    cursor: pointer;
    background-color: #e6bf99;
}

到您的.css文件,一切顺利。

答案 1 :(得分:2)

如果你能提供问题的演示

会很有帮助

看到您正在使用自定义解析器来获取单元格数据属性,我想分享这已经是内置的;设置textAttribute option以匹配您的数据属性:

$(".tablesorter").tablesorter({
    sortReset: true,
    sortRestart: true,
    textAttribute: 'data-sort',
    widgets: ["filter"],
    widgetOptions: {
        filter_external: '.search',
        filter_defaultFilter: { 1: '~{query}' },
        filter_columnFilters: true,
        filter_placeholder: { search: 'Search...' },
        filter_saveFilters: true,
        filter_reset: '.reset'
    },
    headers: {
        'th.smallChart, th.errorLink': {
            sorter: false
        }
    }
});

希望这一改变能解决您遇到的问题。