Datatables kullanırken karşılaşılan türkçe karakter ile süzme işlemini çözmek için jquery.dataTables.js dosyasında ki _fnEscapeRegex fonksiyonun içeriğini aşağıda ki şekilde değiştirmek yeterli...
function _fnEscapeRegex ( sVal ) {
var letters = { "İ": "[İi]", "I": "[Iı]", "Ş": "[Şş]", "Ğ": "[Ğğ]", "Ü": "[Üü]", "Ö": "[Öö]", "Ç": "[Çç]", "i": "[İi]", "ı": "[Iı]", "ş": "[Şş]", "ğ": "[Ğğ]", "ü": "[Üü]", "ö": "[Öö]", "ç": "[Çç]" };
var acEscape = [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ];
var reReplace = new RegExp( '(\\' + acEscape.join('|\\') + ')', 'g' );
sVal=sVal.replace(reReplace, '\\$1');
return sVal.replace(/(([İIŞĞÜÇÖiışğüçö]))/g, function (letter) { return letters[letter]; });
}
İşe yaradı. Allah razı olsun.
YanıtlaSiljquery.dataTables.js dosyasında bu satırı silin:
"var _fnEscapeRegex = DataTable.util.escapeRegex;"
Yukardaki kodu bu satırın yerine yazın.
Bravo mükemmel. Tüm Türkçe karakterleri; baştan, sondan, ortadan, Büyük küçük harf fark gözetmeksizin arama yapıyor.
YanıtlaSilBravo, mükemmel. Tüm Türkçe karakterleri; büyük ya da küçük harf fark gözetmeksizin, en başta, ortada ya da sonda, sorunsuz arama yapıyor. Ajax'ın bu problemine uzun süredir çözüm arıyordum.
YanıtlaSil