2016-04-08 12 views
0

DTサイトにあるアルファ検索機能を追加しようとしました。 document.ready関数に続いjQuery DataTablesアルファベット検索が機能しない

var _alphabetSearch = ''; 
var alphabet; 
$.fn.dataTable.ext.search.push(function(settings, searchData) { 
    if (!_alphabetSearch) { 
     return true; 
    } 
    if (searchData[0].charAt(0) === _alphabetSearch) { 
     return true; 
    } 
    return false; 
}); 

alphabet = $('<div class="alphabet"/>').append('Search Alpha: '); 
$('<span class="clear active"/>') 
    .data('letter', '') 
    .html('None') 
    .appendTo(alphabet); 
for (var i = 0; i < 26; i++) { 
    var letter = String.fromCharCode(65 + i); 
    $('<span/>') 
     .data('letter', letter) 
     .html(letter) 
     .appendTo(alphabet); 
} 

そしてテーブルを初期化する:これは、コードでうまく

$("#tblAllUsers").dataTable({ 
    bProcessing: true, 
    sAjaxSource: '@Url.Action("GetAllUsers")', 
    bJQueryUI: true, 
    sProcessing: "<img src='~/Images/spinner.gif' />", 
    dom: 'Tlf<"clear">rtip', 
    bAutoWidth: false, 
    "oLanguage": { 
     sEmptyTable: "There are no Users at this time" 
    }, 
    "aoColumns": [{ 
     "sWidth": "1%", 
     sClass: "smallFonts" 
    }, { 
     "sWidth": "15%", 
     sClass: "smallFonts" 
    }, { 
     "sWidth": "15%", 
     sClass: "smallFonts" 
    }, { 
     "sWidth": "15%", 
     sClass: "smallfonts" 
    }], 
    tableTools: { 
     "sSwfPath": "../../Scripts/swf/copy_csv_xls_pdf.swf", 
     "aButtons": [{ 
      "sExtends": "print", 
      "bShowAll": true 
     }] 

    } 
}); 

var table = $("#tblAllUsers").DataTable(); 
alphabet.insertBefore(table.table().container()); 
alphabet.on('click', 'span', function() { 
    var tst = alphabet.find('.active'); 
    alphabet.find('.active').removeClass('active'); 
    var t = $(this); 
    $(this).addClass('active'); 
    _alphabetSearch = $(this).data('letter'); 
    table.draw(); 
}); 

アルファ列が現れるが、それは決して検出しません何でもどの手紙をクリックしても何も返されません。私は間違って何をしていますか?

+1

はjsfiddleまたはcodepenに置いて、他の人のために容易になるだろう実行中のバージョンが表示される場合 –

答えて

0

私はその列を非表示にし、これはアルファ検索を固定して、テーブル内の最初の列がレコードのIDであることを忘れていた:

if (searchData[1].charAt(0) === _alphabetSearch) { 
    return true; 
}