我在显示产品的页面上使用tablesorter。其中一列是下拉列表中显示的状态。当我点击产品时,我可以编辑它并更改其状态。当我返回到产品列表时,列表仍然被过滤,这是正常的,但如果产品是具有此状态的最后一个产品,那么产品列表当然是空的,下拉列表显示没有选择,因为状态不是已经存在了。当我回到产品列表页面时,我想清除下拉列表中的过滤器,并且没有更多具有此状态的产品。我怎样才能做到这一点?
我的代码:
<properties>
<maven.compiler.source>1.5</maven.compiler.source>
<maven.compiler.target>1.4</maven.compiler.target>
</properties>
谢谢。
答案 0 :(得分:0)
我使用以下代码制作了它:
var FilterCallOnce = false;
$("#ProductTable").tablesorter({
theme: 'blue',
widthFixed: false,
widgets: [ "zebra", "filter", "resizable" ],
widgetOptions: {
filter_childRows: false,
filter_columnFilters: true,
filter_filteredRow: 'filtered',
filter_hideFilters: true,
filter_ignoreCase: true,
filter_liveSearch: true,
filter_onlyAvail: 'filter-onlyAvail',
filter_reset: 'button.reset',
filter_saveFilters: true,
filter_searchDelay: 300,
filter_serversideFiltering: false,
filter_startsWith: false,
filter_useParsedData: false,
filter_defaultAttrib: 'data-value'
}
}).bind('filterEnd', function(e, filter){
var table = document.getElementById("ProductList");
var nrow = 0;
var nfiltered = 0;
if (FilterCallOnce == false)
{
FilterCallOnce = true;
if (table != null)
{
for (var i = 0, row; row = table.rows[i]; i++)
{
nrow++;
if (!hasClass(row, 'filtered'))
nfiltered++;
}
if ((nrow > 0) && (nfiltered == 0))
$('#ProductTable').trigger('filterReset');
}
}
});
function hasClass(element, cls)
{
return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}