1

私はGWT2.4をaDataGridとaSimplePagerとともに使用していMultiSelectionModelます。すべてのページに単純なselect-all機能を実装したいと思います。

現在のページで表示されているすべてのアイテムのみを選択できます。すべてのページのすべてのアイテムを選択するための最良の方法は何ですか?

オブジェクトMultiSelectionModelによって提供されるプロキシキーをに格納することを知っています。サーバーからすべてのプロキシオブジェクトを要求するか、少なくともすべてのキーを要求する必要があると思います。しかし、実際には、サーバー側にのメソッドに関する情報を保存したくありません。ただし、選択したプロキシのキーにアクセスすることもできません。これはすべて面倒に見えるので、これを解決するためのより良い方法はありますか?ProvidesKeyHashMapProvidesKeygetKey()MultiSelectionModelHashMap

4

3 に答える 3

0

https://developers.google.com/web-toolkit/doc/latest/DevGuideUiCellWidgets#selectionで述べたように、これを実現する 1 つの方法は、独自の SelectionModel を実装することです (たとえば、AbstractSelectionModel または DefaultSelectionModel を拡張することによって)。

複雑な実装では、ブール値を使用して複数のページで「すべて選択」を処理して、すべてが選択されていることを示し、否定的な選択を追跡できます。

于 2012-12-04T18:33:18.360 に答える
0

select all にすべてのキーが必要なのはなぜですか? リストからいくつかのオブジェクトを選択するときは、どのオブジェクトが選択されているかを覚えておく必要がありますが、すべてのオブジェクトを選択するときは、1 つのブール値が必要です。

// on click Select All button/checkbox
boolean selectAll = true;
// ask a user what he wants to do
// send a request to server with a parameter selectAll to update/delete all objects
于 2012-12-04T17:35:55.313 に答える
0

複数のページにわたってすべてを選択することは、遅延読み込みでない場合にのみ機能します。まず、なぜすべてを選択する必要があるのですか?すべてのグリッド データに対して何らかのアクションを実行する場合は、既にリストがあり、リストに対して直接アクションを実行できます。それにもかかわらず、リストを反復処理し、各項目で次の API を使用することにより、複数のページにわたってグリッドのすべての行を選択できます。

 public void setSelected(T item, boolean selected);

注:これは、 遅延読み込みでない場合にのみ機能します。

于 2012-12-05T06:10:52.120 に答える