Я бы хотел иметь возможность фильтровать столбец фамилий, используя фильтр сортировщика таблиц.Фильтр должен совпадать только с первого символа каждого имени.Например, допустим, у вас были следующие три имени:
Гилберт
Бэггинс
Годфри
Если текст фильтра был просто "g", яВам нужен только этот результат:
Гилберт
Годфри
И не соответствует ни один из GS в Бэггинсе.
После изученияИсходный код .tablesorterFilter еще немного, я смог понять, как это сделать.
Вам необходимо создать функцию, которой передаются 3 параметра.Первый параметр - это содержимое элемента HTML.Второй параметр - это строковый массив слов, которые пользователь ввел в контейнер фильтра.Третий параметр - это логическое значение для чувствительности к регистру.Вы передаете ссылку на эту функцию в .tablesorterFilter filterFunction.Я просто скопировал и вставил функцию has_words по умолчанию в .tablesorterFilter и изменил ее, чтобы обеспечить требуемую функциональность.Я назвал его filterbyfirstcolumn и передал ссылку на него как filterFunction.
Вот соответствующий фрагмент кода из моей программы:
function filterbyfirstcolumn(str, words, caseSensitive) {
var text = caseSensitive ? str : str.toLowerCase();
var allwords = "";
for (var i=0; i < words.length; i++) {
allwords += words[i];
if (i != words.length - 1)
allwords += " ";
}
if (text.indexOf(allwords) != 0)
return false;
return true;
}
$("#tblSearchContacts")
.tablesorter({debug: false, widgets: ["zebra"],
headers: {
0: { sorter: false },
4: { sorter: false },
5: { sorter: false },
6: { sorter: false },
7: { sorter: false },
8: { sorter: false }
},
sortList: [[1,0]]})
.tablesorterPager({ container: $("#pagerOne"), positionFixed: false, size : 20 })
.tablesorterFilter({filterContainer: $("#txtFilter"),
filterClearContainer: $("#btnClear"),
filterColumns: [3],
filterCaseSensitive: false,
filterFunction: filterbyfirstcolumn});`
Надеемся, что другие могут найти это полезным.Используя подобную технику, вы могли бы делать все аккуратные вещи с фильтром.