jquery tablesorter 限制过滤器的长度

jquery tablesorter limit length of filter

我正在使用 TableSorter 版本 2.28.1。我在母版页中使用 .net。我在我的 aspx Gridview 控件上设置了一个过滤器。我的客户希望我将过滤器的长度限制为仅 3 个字符。过滤器所在列中所有值的长度只有 3 个长度。

有没有办法限制用户在过滤框中输入的内容的长度?

我试过了...

widgetOptions: {
group_forceColumn: [0],
group_enforceSort: true,
filter_onlyAvail: {
    1: function (e, n, f, i, $r, c, data) {

        return f.toString().substring(0, 3);
    }
}

}

但是好像什么都没做。但是我确实读到我需要将 "filter-select" class 名称添加到 header。我如何为 Gridview 执行此操作?现在,为了使它与我的 Gridview 一起工作,我执行以下操作以在 table.

中获取 "Thead"
        $("#<% =gvContractors.ClientID %> tbody").before("<thead><tr></tr></thead>");
        $("#<% =gvContractors.ClientID %> thead tr").append($("#<% =gvContractors.ClientID %> th"));
        $("#<% =gvContractors.ClientID %> tbody tr:first").remove();

试试这个 (demo):

$(function() {
  $('#<% =gvContractors.ClientID %>').tablesorter({
    theme: 'blue',
    widgets: ['zebra', 'filter'],
    initialized: function(table) {
        $(table).find('.tablesorter-filter').attr('maxlength', '3');
    }
  });
});

filter_onlyAvail option只能设置为字符串;作为 class 名称,用于在将 filter-select class 添加到 header.

时仅显示可用选项

要将 select 添加到第二列(eq() 使用 zero-based 索引),请尝试以下代码:

$("#<% =gvContractors.ClientID %> thead .tablesorter-filter:eq(1)")