dataTables のソート機能について

dataTables はデータを JavaScript 内に記述することによって、ソートが可能になっている。
上記に記述はしたが、Internet Explorer 6.x でも動作することを確認した。
サンプルコードは上記のページにも記述されているが、いつなくなるかもわからないので記述しておく。

<html>
    <head>
        <!-- 実行環境にあわせて jQuery がある場所を修正する -->
        <script type="text/javascript" language="javascript" src="/js/jquery/jquery-1.3.2.min.js"></script>
        <!-- 実行環境にあわせて dataTables がある場所を修正する -->
        <script type="text/javascript" language="javascript" src="/js/jquery/jquery.dataTables.min.js"></script>
        <script type="text/javascript" charset="utf-8">
            $(document).ready(function() {
                /*
                 * id 属性名 demo が設定されている要素(タグ)の中に 
                 * 「<table id="example"></table>」を JavaScript の DOM を操作して追加している。
                 * 「<table id="example"></table>」を body タグ内に書く場合は、
                 * 「$('#demo').html('<table id="example"></table>');」を記述する必要はない。
                */
                $('#demo').html('<table id="example"></table>');
                /* id 属性名 example を持つ table タグ内に子要素を追加する */
                $('#example').dataTable( {
                    "aaData": [
                            /* Reduced data set */
                            [ "Trident", "Internet Explorer 4.0", "Win 95+", 4, "X" ],
                            [ "Trident", "Internet Explorer 5.0", "Win 95+", 5, "C" ],
                            [ "Trident", "Internet Explorer 5.5", "Win 95+", 5.5, "A" ],
                            [ "Trident", "Internet Explorer 6.0", "Win 98+", 6, "A" ],
                            [ "Trident", "Internet Explorer 7.0", "Win XP SP2+", 7, "A" ],
                            [ "Gecko", "Firefox 1.5", "Win 98+ / OSX.2+", 1.8, "A" ],
                            [ "Gecko", "Firefox 2", "Win 98+ / OSX.2+", 1.8, "A" ],
                            [ "Gecko", "Firefox 3", "Win 2k+ / OSX.3+", 1.9, "A" ],
                            [ "Webkit", "Safari 1.2", "OSX.3", 125.5, "A" ],
                            [ "Webkit", "Safari 1.3", "OSX.3", 312.8", "A" ],
                            [ "Webkit", "Safari 2.0", "OSX.4+", 419.3", "A" ],
                            [ "Webkit", "Safari 3.0", "OSX.4+", 522.1, "A" ]
                    ],
                    "aoColumns": [
                            /* sTitle は該当データの th 要素の text として割り当てられる名称 */
                            { "sTitle": "Engine" },
                            { "sTitle": "Browser" },
                            { "sTitle": "Platform" },
                            /* sClass は該当データの td 属性としてに割り当てられる class の名称 */
                            /* sType は td 要素の text の型を明示的にしてする */
                            { "sTitle": "Version", "sClass": "center", "sType": "numeric" },
                            { "sTitle": "Grade",   "sClass": "center" }
                    ]
                } );    
            } );
        </script>
    </head>
    <body id="dt_example">
        <!-- dataTables の DOM 操作開始位置 -->
        <div id="demo"><!-- table タグが記述されていないことに注意!! --></div>
        <!-- dataTables の DOM 操作終了位置 -->
    </body>
</html>

特長

  1. JavaScript 内にデータを記述することで実現しているため、Flexgrid のようにソートを SQL に頼る必要がない。
  2. 上記の特長から、外部から引数を取得して、SQL 文を生成する必要がない。
  3. JSONXML を動的に生成できるように実装する必要がない。

実際に利用するにあたって

  1. FireFox の AddOn である FireBug があると便利。
    JavaScript から操作される DOM もHTML タブから確認ができる。
  2. FireFox の AddOn である Web Developer (日本語化されたものもある) があると便利。
    CSS を記述してレイアウトを整える際に重宝する。