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