2012-03-27 43 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