0

まず第一に、私はこの質問がStackOverflowに関してトピックから外れていると見なされる可能性があることを認識しています。場合によっては、StackExchangeサイト内のどこに適しているかを教えてください。

次の(単純な)状況に対応するために、単純ですが完全なユーザーインターフェイスを開発する必要があります。多数のユーザーの多数のイベントへの出席を処理する。このアプリのターゲットユーザーはスーパーユーザーです。つまり、各ユーザーが参加したイベントの数と、イベントに参加したユーザーの数を監視およびカウントする必要があるユーザーです。スーパーユーザーは、ユーザー、イベント、出席に対してあらゆる種類のCRUD操作を実行できる必要があります。

db構造は、user、event、attendanceのテーブルで構成されています。

ユーザーには出席OneToManyとの関係があります。1人のユーザーが多数の出席にリンクされています。

イベント出席OneToManyと関係があります。

私が考えたレイアウトは次のとおりです(PrimeFacesウィジェットを使用):2つのタブを持つTabView:ユーザーとイベント。各タブには、DataTablesLazyLoading、フィルタリング、および各列の並べ替えを通じて、そのタイプのすべてのレコードが表示されます。

各DataTableには、編集-削除操作用のボタンを備えた追加の列があります。さらに、ユーザーテーブルの追加の列には、そのユーザーに関連するイベントを表示するための[イベントの表示]ボタンが含まれています。鏡面反射的に、「ユーザーの表示」ボタンがイベントテーブルに表示されます。

[イベントの表示]ボタンは、ユーザーに関連するイベントを含む別のDataTableを含むモーダルダイアログを開きます。

ここに質問があります:選択したユーザーに関連するイベントのこのリストをスーパーユーザーに更新させる合理的な方法は何ですか?関係のないイベントを含むすべてのイベントを、関係を示すラジオボタンのある列で表示する必要がありますか?または、関連するイベントのみを表示する必要がありますか?スーパーユーザーはどのようにして新しい関連イベントを追加しますか?まだ関連していないイベントを示す別のDataTableが必要ですか?または、PickListを使用する必要がありますか?PickListを使用している場合、リストが長いとどうなりますか?PickListコンポーネントにページ付けまたはフィルタリング機能が表示されません。

4

2 に答える 2

1

の中に収まらない場合、PrimefacespickListは追加します。ただし、大規模なデータセットに使用するのは効率的ではありません。代わりに使用してください。しかし、@Namphibianはすでにこれを言っています。scrollparent componentdataTables

次にデザインに進みます:

持っUsersEventsセパレートtabsでいいです。私があなただったらdataTables、各タブ内に 3 つ入れます。たとえば、Userタブの場合は次のようになります。

  • 全てのユーザー
  • 特定の関連イベントUser
  • すべてのイベント

タブを最初に開いたときに表示されるのは、すべてのユーザー dataTable( )のみです。multiselection

これには、 「RelatedEvents」、「AssignToEvent」、「AddUser」など、別の 2 の表示を管理するtableコントロールbuttonsがあります。footertablesbuttons

" RelatedEvents "をクリックすると、関連イベント dataTableが表示されます (たとえば、 で処理しますjQuery)。これにtableは、[すべてのユーザー]テーブルからEvents選択されたすべてのユーザーに関連するものがあります。ここでは、イベントからの「割り当て解除」、特定の「更新」、そしてもちろんこれを「非表示」(再び jQuery) に管理できます。UserUserEventtable

「 AssignToEvent」をクリックすると、すべてのイベント dataTableが表示されます (jQuery)。これtableですべての既存のものになりますEvents。ここでは、特定のものを選択してから、選択したすべてのユーザーから選択したものへのEvent割り当てを確認」します。「非表示」ボタンも含まれます。UsersEvent

Eventタブの同様のアプローチ。dataTable には、フィルタリング、並べ替え、行の強調表示などの多くの利点があるため、これが最良の選択です。

このようにして、superUser がすべてを閲覧し、すべてUsersを表示せずに編集できるようにするだけでなくtables、2 回のクリックですべてを管理できるようにすることができます。(イベントも同様)

これらは私の考えです。なんとなく刺激になるかも。

于 2012-04-13T15:46:47.047 に答える
0

私が適用する簡単な経験則は、長いリストの場合、データテーブルの方がはるかに使いやすいということです。フィルタと並べ替えをテーブルに適用できます。選択リストは通常​​、小さいリストに適しています。

ペンとパッパーをつかんで、考えているレイアウトをスケッチします。これは、さまざまなレイアウトのアイデアをすばやく確認する方法であり、問​​題のあるデザインをすばやく排除するのに役立ちます。

于 2012-04-13T08:40:03.463 に答える