1

列で並べ替えが有効になっている GWT セル テーブルを使用しています。列をフィルタリングするオプションも提供しています。これは、大まかにヘッダーがどのように見えるかです。

----ColumnName (画像) -------

ユーザーが画像をクリックすると、フィルタリングプロセスが開始されます。これは、Cell Table の addCellPreviewHandler を使用して実現しました。私が直面している問題は、画像をクリックすると、列もソートされることです。これが起こらないようにする方法を誰か教えてもらえますか? より明確にするために、ユーザーがヘッダー内の画像以外の場所をクリックしたときにソートが呼び出されるようにします。

ありがとう。

  breakDownCellTable.addColumn(indexedColumn, columnHeader);
        final int currentColumnIndex = columnIndex;

        // Add a ColumnSortEvent.ListHandler to connect sorting to the
        // java.util.List.
        ListHandler<List<GwtContributorCellData>> columnSortHandler = new ListHandler<List<GwtContributorCellData>>(contributorList);
        columnSortHandler.setComparator(indexedColumn, new Comparator<List<CustomClass>>() {
            public int compare(List<CustomClass> o1, List<CustomClass> o2) {
                if (o1 == o2) {
                    return 0;
                }

                // Compare the columns.
                if (o1 != null) {
                    return (o2 != null) ? o1.get(currentColumnIndex).compareTo(o2.get(currentColumnIndex)) : 1;
                }
                return -1;
            }

        });

        breakDownCellTable.addColumnSortHandler(columnSortHandler);

および onBrowserEvent メソッドで:

if("click".equals(event.getType())){
            EventTarget eventTarget = event.getEventTarget();
            if(eventTarget.toString().contains("img") && !eventTarget.toString().contains("<th")){
                //event.stopPropagation();
              //  Window.alert("here");
                //breakDownCellTable.fireEvent()
                ColumnSortEvent.fire(breakDownCellTable, breakDownCellTable.getColumnSortList());
4

1 に答える 1