レンダリング機能が、自分の列の1つに対するDataTableの並べ替え能力を損なうようです。この列には、「コーパスランク」と呼ばれるものが含まれています。コーパスランクはすべて整数ですが、インタフェース目的のために、コーパスランクが4000の値を超えたときを検出するレンダリング関数を作成しました。もしそうなら、レンダリング関数を使ってコーパスランクエントリを珍しいという文字列に変更します。DataTables API:Datatablesはレンダリング(特定の要素に文字列を挿入する)によって整数の列を並べ替えることができません。
これは、誰かが列のヘッダーをクリックしてコーパスランクでソートしようとすると、コーパスランクは整数ではなく文字列のように扱われるからです。レンダリング関数を削除した場合、実際には列は文字列ではなく整数としてソートされます。
columns.push({
"name": $(this).data("fieldname"),
"data": "fields."+$(this).data("fieldname"),
/*"render": function(data, type, full, meta) {
if (data > 4000) {
return "rare";
} else {
return data;
}
},*/
"visible": $(this).data("visible"),
私は、DataTableのは、通常、それらのデータの種類を使用して列をソートすることを認識しています...しかし、これは整数と文字列の両方を持つ列です。これを解決するには何ができますか?
これは機能しました。これはより速い修正の1つと思われますが、正確に 'タイプ'が何であるか、またその文字列値が「ディスプレイ」と等しいことをどのように知っていたかを知りたいと思います。 ドキュメントを検索しているときにこれを見つけることができませんでしたが、しばらく経っていますが、私に与えることができるリードはありますか? –
@ByronSmithさて、 "* Look at ... *"はドキュメントを見ているヒントでした:)ここは** https://datatables.net/reference/option/columns.render**になりますすべてのタイプの可能性** https://datatables.net/manual/data/orthogonal-data** – davidkonrad
ああ。ダム私。私はちょうどそれを検索し、情報を見つけるのに困っていた。 –