Smart GWTのNested Gridに似たコントロールを開発する必要があり ます。
ユーザーは拡張画像の列を持ちます。ユーザーが特定の行の画像をクリックすると、サブグリッド自体が開かれる必要があります。ここでは、残りのすべての行を下に移動する必要があります。
どうすればその機能を実現できますか? 続行できるように、誰か手がかりを教えてもらえますか。
カスタムヘッダーを持つセルテーブルであるグリッドが既にあります(検索機能が実装されています)。
ありがとう、サリサ。
Smart GWTのNested Gridに似たコントロールを開発する必要があり ます。
ユーザーは拡張画像の列を持ちます。ユーザーが特定の行の画像をクリックすると、サブグリッド自体が開かれる必要があります。ここでは、残りのすべての行を下に移動する必要があります。
どうすればその機能を実現できますか? 続行できるように、誰か手がかりを教えてもらえますか。
カスタムヘッダーを持つセルテーブルであるグリッドが既にあります(検索機能が実装されています)。
ありがとう、サリサ。
表示するネストされたウィジェット (myNestedWidget) を作成します。グリッドが LayoutPanel (または同様のもの) に追加されていない限り、CSS スタイル "position: absolute" が必要です。この場合、ウィジェットを直接配置できます。グリッド gridParentWidget の親ウィジェットを呼び出しましょう。
CellTable に次のハンドラーを追加します。
myTable.addCellPreviewHandler(new Handler<myObject>() {
@Override
public void onCellPreview(CellPreviewEvent<myObject> event) {
if ("click".equals(event.getNativeEvent().getType())) {
if (event.getColumn() == 0) {
int top = myTable.getRowElement(event.getIndex()).getAbsoluteBottom();
int left = myTable.getRowElement(event.getIndex()).getAbsoluteLeft();
myNestedWidget.getElement().getStyle().setTop(top, Unit.PX);
myNestedWidget.getElement().getStyle().setLeft(left, Unit.PX);
gridParentWidget.add(myNestedWidget);
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
int height = myNestedWidget.getOffsetHeight();
myTable.getRowElement(event.getIndex()).getStyle().setHeight(height + "px");
]
});
}
}
});
}
これは明らかにソリューションの概要です。実装の詳細は、親ウィジェットとネストされたウィジェットに使用するウィジェットによって若干異なる場合があります。z-index をどこかで変更する場合は、それも考慮する必要があります。また、ネストされたウィジェットがグリッドの幅に収まるようにするか、ScrollPanel でラップして明示的に幅を設定する必要があります。