JQuery のDataTablesのドキュメントは非常に貧弱です。たぶん些細な質問で申し訳ありません。
いくつかの列の文字列でテーブルをフィルター処理したい。これが私のコードです:
var str = "days";
my_table.fnFilter(str, 9);
9 列 (0 から数えて) に「日」文字列を含む行のみがあると予想しています。しかし、上記のコードでは結果が得られません
このコードを RexEx で使用しようとしました:
var regEx = "days";
my_table.fnFilter(regEx, 9, true);
このコード:
var regEx = "^days$";
my_table.fnFilter(regEx, 9, true);
そしてこのコード:
var regEx = ".*days.*";
my_table.fnFilter(regEx, 9, true);
すべて運が悪い。テーブルの 9 列目に「101 日」という文字列があると確信しています。私は何を間違っていますか?
更新:列にカスタムタイプがあります:
jQuery.fn.dataTableExt.oSort['days-asc'] = function (a, b) {
var x = parseInt((trim(a) == "") ? 0 : trim(a.replace(/days/, "")));
var y = parseInt((trim(b) == "") ? 0 : trim(b.replace(/days/, "")));
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
};
jQuery.fn.dataTableExt.oSort['days-desc'] = function (a, b) {
var x = parseInt((trim(a) == "") ? 0 : trim(a.replace(/days/, "")));
var y = parseInt((trim(b) == "") ? 0 : trim(b.replace(/days/, "")));
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
};
更新 2:テーブルの 初期化オプション:
$.my_table = $("#myTable").dataTable({
"iDisplayLength": 10,
"bStateSave": false,
"bFilter": true,
"bSort": true,
"bAutoWidth": false,
"oLanguage": {
"sLengthMenu": sStdMenu + " per page"
},
"sPaginationType": "full_numbers",
"sDom": 'rti<"bottom2"p><"bottom1"l',
"aaSorting": [
[0,'asc']
],
"aoColumns": [
{ "sType": "html-trimmed" },
{ "sType": "date-direct" },
{ "sType": "date-direct" },
{ "sType": "html" },
{ "sType": "percent" },
{ "sType": "money" },
{ "sType": "money" },
{ "sType": "money" },
{ "sType": "days" },
{ "sType": "days" },
{ "sType": "days" },
{ "sType": "days" },
{ "sType": "days" },
{ "sType": "days" },
{ "sType": "html" },
{ "sType": "html" },
null,
null,
null
]
});