0
是否可以使用GXT的绑定机制将Grid
绑定到Html
(或其他Widget
实现)?如何使用从网格绑定到HTML模板?
似乎从the examples,这只是适用于形式(FormBinding
),而我的目的是为了有一个Template
更新部件内部元件,通过网格的SelectionChangedEvent
小号发送模式,这种模板驱动。
是否可以使用GXT的绑定机制将Grid
绑定到Html
(或其他Widget
实现)?如何使用从网格绑定到HTML模板?
似乎从the examples,这只是适用于形式(FormBinding
),而我的目的是为了有一个Template
更新部件内部元件,通过网格的SelectionChangedEvent
小号发送模式,这种模板驱动。
结合电网和通用组件直接明显是不可能的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例子。希望这可以帮助。
感谢, Ganesh神
是啊,我是沿着这种解决方案的思路思考,但我希望在GXT一个通用的绑定机制与各种部件的工作。与此同时,我放弃了这个方向,但似乎是这个问题的合理解决方案。接受这个答案,谢谢你的时间和精力。 – 2012-03-29 15:08:23
请注意我编辑了你的答案,因为它没有提供与我的问题相关的解决方案,而是通过发射选择事件而不是使用绑定机制的解决方法。 – 2012-03-29 15:14:02