2012-03-27 46 views
0

是否可以使用GXT的綁定機制將Grid綁定到Html(或其他Widget實現)?如何使用從網格綁定到HTML模板?

似乎從the examples,這只是適用於形式(FormBinding),而我的目的是爲了有一個Template更新部件內部元件,通過網格的SelectionChangedEvent小號發送模式,這種模板驅動。

回答

0

結合電網和通用組件直接明顯是不可能的GXT的當前版本,總之這是一個解決辦法提供了一個替代的解決方案:

我只是利用的例子Grid BindingTemplates來支持您的要求。下面是修改後的代碼

@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神

+0

是啊,我是沿着這種解決方案的思路思考,但我希望在GXT一個通用的綁定機制與各種部件的工作。與此同時,我放棄了這個方向,但似乎是這個問題的合理解決方案。接受這個答案,謝謝你的時間和精力。 – 2012-03-29 15:08:23

+0

請注意我編輯了你的答案,因爲它沒有提供與我的問題相關的解決方案,而是通過發射選擇事件而不是使用綁定機制的解決方法。 – 2012-03-29 15:14:02

相關問題