FogBugz Casesテーブルのようなデータテーブルをソートする方法
質問
fogbugzがどのようにテーブルをソートするのか見たことがある人はいますか?列をクリックしてソートすると、実際にはテーブルが情報の各カテゴリを持つ多数の小さなテーブルに分割されます。
これを行う方法を誰かが知っているのだろうか?
この機能の実装を検討しています。
ケースページを調べて並べ替えると、私が言っていることがわかります。
どのヘルプも素晴らしい!
まだこれを理解していません。
編集: @Peter、並べ替えのためにヘッダータイトルがクリックされるたびにテーブルをポストバックして再作成したくない。また、それらがこのための一般的なソリューションであるかどうかも知りたいです。ヘッダーをクリックしてJavaScriptでソートすると、<!> quot; one <!> quot;が区切られます。多数のテーブルがあり、ソートされたテーブルを表示するはるかに優れた方法であるため、これに対する一般的なソリューションであるかどうかを知りたいです。
編集: javascriptソーターが必要ですが、fogbugzの実装を直視すると、異なる結果が生成されます...
解決
はい、リッチはそれを手に入れました(私はずっと前にこの機能をFogBugzにコーディングしました)。
クライアントでこれを行う必要がある場合、データを並べ替える以外に選択肢はなく、それを繰り返してテーブル行ごとにテーブル行を生成し、新しい並べ替え値にヒットするたびに、適切な/情報。
正直に言うと、このjQueryプラグインのかなりクールな変更になります。 http://tablesorter.com/docs/ そしてあなたは彼らの仕事の多くを活用することができるでしょう。時間をかけて一般的なソリューションを作成する場合は、コミュニティがアクセスできるようにすることもできます。
他のヒント
Fog Creekがこれをどのように達成するかを具体的に知らずに、私が行う方法は、テーブルヘッダーを出力し、リストを反復処理し、グループ値が変更されるたびにフッターと新しいヘッダーを出力することです。
どのような答えが期待できるかわかりません。これに対するSQLクエリは、選択した列の順序を使用するだけで、この値が変更されるたびにUIが新しいテーブルを開始します。
[Priority]列をクリックした後の、このソートを使用したFogBugzのスクリーンショットです。
http://img297.imageshack.us/img297/6974/76755363ee3.png
もちろん、すべての列(タイトル、ケース#)で新しいテーブルを開始しても意味がありません。
編集:正しく理解できたら、新しいページを読み込まずにブラウザでこれを行う方法を探しています。この場合、少なくともいくつかのサーバー側のサポートをお勧めします。これにより、データが正しい順序で返され、サブテーブル用に適切に構造化されます(xml / json /使用するものは何でも)。 JavaScriptはこのデータを使用してテーブルを再作成します。より多くのウェブUI経験を持つ他の人がより良い答えを提供することを確信しています。
Kryogenixの Sortable Tablesスクリプトを使用して、いくつかの良い結果が得られました。
関連性があるかどうかはわかりませんが、クエリの結果をSQLの一時テーブルに保存し、current-row-less-oneを参照してカテゴリが変更されたかどうかを確認し、結果セット。
場合によっては、<!> quot; indicate <!> quot;これを含む列を使用して
<tr><td colspan=999>Category Heading</td></tr>
ウェブページが<!> quot; inject <!> quot;それをテーブルに構築します。
SELECT Col1, Col2, ...,
[CATEGORY] = CASE WHEN T1.CategoryCol <> COALESCE(T2.CategoryCol, '')
THEN '<tr><td colspan=999>' + T1.CategoryCol + '</td></tr>'
ELSE ''
END
FROM #MyTempTable AS T1
LEFT OUTER JOIN #MyTempTable AS T2
ON T2.ID = T1.ID - 1