ich meinen früheren Vorschlag gelöscht haben über die Verwendung von keepConditions, da es nicht in Ihrem Anwendungsfall nicht funktioniert (getestet I), aber es hat mir denken, und ich habe mit diesem kommen:
$('#example tfoot th').each(function(k, v){
var title = $(this).text();
$(this).html('<input type="text" data-position="'+k+'" placeholder="Search ' + title + '" />');
});
var example = $("#example").DataTable();
example.columns().every(function(){
var that = this;
$('input', this.footer()).on('keyup change', function(){
var hash = [];
$('#example tfoot th').each(function(k, v){
if(~~$(v).find("input").val().length){
hash.push($(v).find("input").data("position") + "=" + encodeURIComponent($(v).find("input").val()));
}
});
window.location.hash = hash.join("&");
if(that.search() !== this.value){
that.search(this.value).draw();
}
});
});
if(window.location.hash) {
var hash = window.location.hash.substring(1).split("&");
$.each(hash, function(k, v){
$("#example tfoot th input:eq("+v.split("=")[0]+")").val(decodeURIComponent(v.split("=")[1])).trigger("change");
});
}
Grundsätzlich Jedes Mal, wenn ein Suchbegriff eingegeben wird, durchlaufen wir alle Eingaben und aktualisieren den URL-Hash mit den Ergebnissen. Dann stellen wir sicher, dass wir darauf achten, ob es einen Hash gibt, und führen den umgekehrten Vorgang aus. Dies ist eine funktionierende example.
Hoffe, dass hilft.
Ihr Beispiel Link funktioniert nicht. – Mike
Hi @Mike, Link jetzt korrigiert, mein Fehler für das Fehlschlagen :-( – annoyingmouse
Wie initialisierst du das DataTable? Ich sehe, dass Sie den Spaltenfilter in der Fußzeile verwenden, aber ich sehe nicht, wo Sie es initialisiert haben ? – Mike