1

古いvbデスクトップアプリをASP.NETWebアプリケーションバージョンに移行しています。このアプリを使用すると、誰かが建物の見積もりをフロアごとに指定し、各フロアに必要な各アイテムの数を指定できます。既存のDBは非常に単純なM:N結合です

+----------+    +-----------+    +----------+
| Floors   |    | FloorItems|    | Items    |
+----------+    +-----------+    +----------+
| FloorId  |--->| FloorId   |    |          |
| ...      |    | ItemId    |<---| ItemId   |
|          |    | Quantity  |    | ...      |
+----------+    +-----------+    +----------+

既存のデスクトップアプリでは、開発者はこの2Dマトリックスグリッドをハッキングして、エンドユーザーが1つの画面のすべてのフロアにあるすべてのアイテムの数量を追加できるようにしました。例えば

        | Item 1 | Item 2 | Item 3 | Item 4 | ....
--------+--------+--------+--------+--------+------
Floor 1 |
Floor 2 |
Floor 3 |
Floor 4 |
...     |

これはあらゆる種類の問題を引き起こしますが、Web UIでは、アイテム/製品カタログが大きくなるにつれてグリッドが非常に広くなる可能性があるためです。ページサイズも問題です。潜在的に数百の画面入力の検証と定期的な自動保存は言うまでもありません...

Webアプリで入力の潜在的に大きなマトリックスを処理するために他のUIパターンを推奨できる人はいますか?または、オンラインでいくつかの良い例を指摘しますか?

(私はSilverlightでこの1つの画面を実行して、グリッドをUI内で必要なだけ右にスクロールできるようにし、すべてのテキストボックスをフォーカス出口に保存するというアイデアをいじっています)

4

2 に答える 2

1

リストを横切るのではなく下に成長させようとしているだけの場合は、ツリーコントロールを使用してみませんか?ディスプレイは大きくなるだけで、ビューを拡大したり折りたたんだりできるので、一度に1つのフロアでしか機能しません。チェックポイント付きの検証/保存を実装する場合は、フロアレベルに[編集]、[キャンセル]、[保存]ボタンを追加し、[編集]をクリックするまでデータを読み取り専用にします。保存時に検証できます。ユーザーが別のフロアを編集しようとした場合は、現在のフロアを保存またはキャンセルする必要があることを警告します。

Building
|
+--Floor 1       [Edit] [Cancel] [Save]      
   |
   +-- Item 1   _Qty Entry_
   |
   +-- Item 2   _Qty Entry_
   |
   +-- Item 3   _Qty Entry_
   |
   +-- Item 4   _Qty Entry_
|
+--Floor 2    
   |
   +-- Item 1   _Qty Entry_
   |
   +-- Item 2   _Qty Entry_
   |
   +-- Item 3   _Qty Entry_
   |
   +-- Item 4   _Qty Entry_
于 2011-11-28T13:33:00.970 に答える
1

まず、顧客が表示したいデータの量を減らすためにオープンであるかどうかを確認しようと思います。
4階のアイテム数量を編集する場合、本当に2階のアイテムを表示する必要がありますか?
あるいは、おそらく、アイテム#3を編集するとき、ユーザーはアイテム#12の量にあまり悩まされていません。

上記のいずれかに対する答えが肯定的である場合は、一度に1つのフロア/アイテムのみを表示するように画面を再設計できます。これにより、問題がほぼ解消されます。

単にその膨大な量のデータを表示する必要がある場合は、大量のデータを適切に処理できる多くのグリッドコントロールがあります。
個人的にはjQueryのjqgridが好きです。明らかにもっとたくさんあります。

于 2011-11-27T16:35:16.277 に答える