Javascript 来自tablesorter的筛选器小部件不';行不通
我在MVC Razor应用程序中使用Tablesorter(2.22.1),在添加基本过滤器行时遇到问题。 我在捆绑包中添加了脚本(js插件)Javascript 来自tablesorter的筛选器小部件不';行不通,javascript,jquery,asp.net-mvc,filter,tablesorter,Javascript,Jquery,Asp.net Mvc,Filter,Tablesorter,我在MVC Razor应用程序中使用Tablesorter(2.22.1),在添加基本过滤器行时遇到问题。 我在捆绑包中添加了脚本(js插件) bundles.Add(new ScriptBundle("~/bundles/initTableSort").Include( "~/Scripts/libs/jquery.tablesorter.js", "~/Scripts/libs/jquery.tablesorter.widget
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文件(新的),它们被添加到_布局中
@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。我不粘贴表代码,因为它太长了,而且我认为它的外观没有问题
在排序之后,重置排序(第三次单击之后),自定义解析器可以正常工作,但include小部件“Filter”只给我一行来向每一列写入过滤器查询,但它不起作用。我可以写一些东西,但在那个之后表格就不会被过滤了。我不知道为什么。Inspect没有显示任何错误
拜托,有人能帮我写下我做错了什么
编辑1
我甚至用这个文档中的数据创建了一个新的项目,我仍然有同样的问题,所以我不得不做一些错误的事情,但我不知道是什么和在哪里。
如果您能提供该问题的演示,那将很有帮助 看到您正在使用一个自定义解析器来获取一个单元格数据属性,我想告诉大家这已经是内置的了;将设置为与数据属性匹配:
$(".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
}
}
});
希望此更改将解决您遇到的问题。问题已解决
问题出现在.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文件,一切正常。谢谢你的回答,我的代码现在变短了,但仍然有一个过滤器问题。我还添加了问题的屏幕。这里有一个演示:……工作正常,直到你删除了theme.blue.css,然后过滤不再工作。使用自定义时,请确保包含此css:
。过滤{display:none;}
这也解决了我的问题,但在过滤器之后,斑马条纹的行被弄乱了。节省了我的时间!!谢谢!!(我在读这篇文章之前花了这么多时间来实现过滤器)为什么!现在我对自己的困惑并不感到难过。