私はMVC3とhtmlヘルパーでtablesorterを使用して、オブジェクト内のアイテムを通過するforeachループ内の列にデータを入力しています。これは正常に機能しており、私のhtmlテーブルは希望どおりに入力されています。しかし、テーブルの2番目の列である従業員名の並べ替えに問題があります。これは次のようになります。
<td class="reviewedEmployee">
@Html.TextBox("Employees", item.FirstName + " " + item.LastName, new { style = "width:auto !important; text-align:center;" })
</td>
テーブルソーターを使用するように正しくフォーマットされている「従業員」タイトルをクリックしても、ソートは行われません。しかし、「List of Reviewers」(選択リストの@ Html.ListBox)などの別の列をクリックすると、その列で並べ替えられます。「従業員」のタイトルに戻ると、変更が加えられますが、アルファベット順ではありません(名+姓)。2011年または2012年のいずれかを表示する最初の列「Year」でも並べ替えは機能しません。
これが私のJSです:
$(document).ready(function () {
$('table.tablesorter').tablesorter({ textExtraction: 'complex' })
.tablesorterPager({ container: $("#pager"), size: $(".pagesize option:selected").val() });
});
「Employee」列のデータのスペースを削除しようとしましたが、tablesorterから「textExtaction」プロパティを削除しました。他のアイデアはありますか?
更新:テーブル内のデータは入力タグであるため、おそらくtablesorter.AddParser()メソッドを追加して、入力タグ内のセル.val()を返すことにより、値で並べ替える方法を見つける必要があります。