0

ASP.NET を使用して生成されたテーブルでtablesorter プラグインを使用しています。私の問題は、日付 (形式 = YYYY-MM-DD) の列があり、ソーターがローカル マシンでのみ動作していることです。サーバー上で公開されている場合は、そうではありません。デバッグ モードをオンにすると、ローカル マシンでは自動検出される列のタイプが であり、運用マシンでは であることがわかりましisoDateshortDate

重要:日付を見ると、まったく同じように見えます。例: 2010-11-15。違いはありません。しかし、ローカル設定はマシン自体で大きく異なると確信しているため、一方が isoDate と見なされ、もう一方が shortDate と見なされる理由を説明する必要があります。

また、プラグインにこれ​​らの両方の形式のソーターが含まれていることも確認しました。私は最新バージョンを持っていますが、誰もそのバグを持っていないようです。

私は何を間違っていますか?

isoParser の使用を強制するために、私がすでに試したこと:

$("#ChangeLogTable1").tablesorter({headers: { 0: { sorter: 'isoDate'}}});

編集

このためのコードを変更して (以下を参照)、ソートを「文字列として」強制するようにしました。これは、日付形式でこの可能性が得られるため機能しますが、形式が dd-mm-yyyy の場合は機能しません。したがって、私の質問はまだ開いたままになりますが、これは回避策です。

$(this).tablesorter({ headers: { 0: { sorter: 'text'} }});

編集2

ここにいくつかのテーブル html があります。機密データの一部を XXXX に置き換えただけです。

<div style="width: 1300px">

        <table id="ChangeLogTable1" class="table tablesorter table-bordered"> 
        <thead>
            <tr>
            <th>Date de correction</th>
            <th>Correcteur</th>
            <th>BugID</th>
            <th>Catégorie</th>
            <th>Module</th>
            <th>Description de la correction</th>
            <th>Impact</th>
            <th>Rapporté par</th>
            <th>Demandé par</th>
            </tr>
        </thead>
        <tbody>

            <tr>
                <td width="125px"> 2012-10-10</a></td>
                <td width="100px"> XXXX</td>
                <td width="75px"> XXXX</td>
                <td width="100px"> XXXX </td>
                <td width="100px"> XXXX </td>
                <td width="300px"> XXXX </td>
                <td width="300px"> </td>
                <td width="100px"> XXXX </td>
                <td width="100px"> </td>
            </tr> 
4

1 に答える 1

1

isoDateデータがこの形式の場合にのみパーサーが設定されるため、HTML を要求しました####/##/##

/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s);

shortDateパーサーは、データが次のような場合、##/##/####または次の場合にのみ設定されます##/##/##

/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s); // from tablesorter v2.0.5

したがって、パーサー コードが変更されているか、html 形式が正しく解釈されていません。isoDateしかし、これはheadersオプションの設定が機能しない理由を説明していません。

最初の行の日付が意図せずに別の形式になったり、一部のインライン HTML (つまり、スタイリングのためにスパンでラップされた数値) になったりして、各列で使用するパーサーを検出するコードがデータを誤って解釈する他の行と異なる可能性があります。そこで、HTML がどのように見えるかを尋ねました。

textExtractionあなたが初期化コードを共有したことは知っていますが、関数を変更するとデータの処理方法も変わる可能性があるため、使用されている、表示されていない他の構成オプションがあるかどうかも確認する必要があると思います。

于 2012-11-23T13:21:30.547 に答える