可以使用GXT的绑定机制将Grid
绑定到Html
(或其他Widget
实现吗?
来自the examples它似乎只适用于表单(FormBinding
),而我的目的是让Template
更新一个小部件内部元素,由网格{{1}驱动发送该模板的模型。
答案 0 :(得分:0)
在当前版本的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示例中。希望这会有所帮助。
谢谢, 内甚