他の人が以前言ったように
組み込みのテーブルソートコードでは、複数列のソートをサポートしておらず、列の昇順ではなく降順のデフォルトを定義することもできません。
ただし、Tablesorterを使用した次のアプローチを確認する必要があります。
D7の場合:
1.Tablesorter モジュールをダウンロードして有効にします
2.Tablesorter jQuery Pluginをダウンロードして解凍しますsites/all/libraries/tablesorter
3. CSSクラスtablesorter
と一意のIDをtemplate.phpのビューテーブルに追加します。
/**
* Preprocess variables for Views tables.
*/
function YOUR_THEME_preprocess_views_view_table(&$vars) {
$view = $vars['view'];
$vars['classes_array'][] = 'tablesorter';
$vars['attributes_array']['id'] = $view->name . '-' . $view->current_display;
}
4.キャッシュを数回クリアします。これで、Tablesorterはすでに機能し始めているはずです。スタイルが変更されたときに表示されます。
5. 2次ソートの場合、小さなカスタムJavaScriptを追加する必要があります。template.php:
/**
* Override or insert variables for the page templates.
*/
function YOUR_THEME_preprocess_page(&$vars) {
// you might define some conditions around here
drupal_add_js(drupal_get_path('theme', 'YOUR_THEME') . '/scripts/custom_tablesort.js');
}
そのスクリプトで、次のように記述して、特定のテーブルの最初の6つの列をアルファベットの昇順でソートするようにTablesorterに指示します。Tablesorterに2番目と3番目の列のみを昇順でソートするようsortList: [[1,0], [2,0]]
に指示するには、代わりに書き込みます。
(function ($) {
Drupal.behaviors.tableSorting = {
attach: function (context, settings) {
$("#your_view_name-display_name").tablesorter({
sortList: [[0,0],[1,0],[2,0],[3,0],[4,0],[5,0]]
});
}
}
}) (jQuery);
Tablesorterにすべてのテーブルを2次ソートさせたい場合は、前処理時にCSS IDを定義する必要はなく、単にTablesorterに伝えます。 $("table").tablesorter({ sortList: [[0,0],[1,0],[2,0],[3,0],[4,0],[5,0]] });
少しテストした後、カスタムのTablesorterオプションをすべて残して(ステップ4で終了)、shift複数のヘッダーをクリックしたまま、希望するすべての列で二次ソートが機能することをユーザーに説明します。