直接グリッドと汎用コンポーネントをバインドすると、GXTの現在のバージョンでは明らかにできません、とにかくこれは回避策として提供代替ソリューションです:
私はちょうどあなたの要件をサポートするための例Grid BindingとTemplatesを利用しました。ここで修正されたコード
@Override
protected void onRender(Element parent, int index) {
super.onRender(parent, index);
setStyleAttribute("margin", "10px");
ContentPanel cp = new ContentPanel();
cp.setHeading("Form Bindings");
cp.setFrame(true);
cp.setSize(800, 400);
cp.setLayout(new RowLayout(Orientation.HORIZONTAL));
final LayoutContainer panel = new LayoutContainer(new FlowLayout());
Grid<Stock> grid = createGrid();
grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
final Template template = new Template(getTemplate());
grid.getSelectionModel().addListener(Events.SelectionChange, new Listener<SelectionChangedEvent<Stock>>() {
public void handleEvent(SelectionChangedEvent<Stock> be) {
if (be.getSelection().size() > 0) {
template.overwrite(panel.getElement(), Util.getJsObject(be.getSelectedItem()));
} else {
panel.removeAll();
}
}
});
cp.add(grid, new RowData(.6, 1));
cp.add(panel, new RowData(.4, 1));
add(cp);
}
private native String getTemplate() /*-{
var html = [ '<p>Name: {name}</p>', '<p>Symbol: {symbol}</p>',
'<p>Last: {last}</p>', '<p>Last Updated: {date}</p>', ];
return html.join("");
}-*/;
はGrid Binding例にこれらの修飾を追加です。お役に立てれば。
おかげで、 ガネーシュ
そう私は、このソリューションのラインに沿って考えていたが、私は、コンポーネントのすべての種類で動作するようにGXTでの一般的な結合メカニズムを期待していました。私はその間にこの方向を中止しましたが、それはこの問題のもっともらしい解決策のようです。これを答えとして受け入れ、あなたの時間と努力に感謝します。 –
note私はあなたの答えを編集しました。それは私の質問に関しては解決策ではありませんが、バインディングメカニズムを使用する代わりに選択イベントを発生させるという回避策です。 –