2012-03-27 5 views
0

ist es möglich, GXTs Bindungsmechanismus zu verwenden, um eine Grid an eine Html (oder andere Widget Implementierung für diese Angelegenheit) zu binden?Wie verwendet man die Bindung von einem Raster zu einer HTML-Vorlage?

es scheint aus the examples, dass es für Formulare nur anwendbar ist (FormBinding), während mein Ziel ein Template Aktualisieren eines Widgets innere Element zu haben ist, angetrieben durch die SelectionChangedEvent s des Gitters, die Modelle für diese Vorlage zu senden.

Antwort

0

Bindungsnetze und generische Komponenten direkt ist offenbar nicht möglich, die aktuelle Version von GXT, jedenfalls ist dies eine alternative Lösung als Problemumgehung angeboten:

ich gerade gemacht Verwendung der Beispiele Grid Binding und Templates Ihre Anforderung unterstützen . Hier ist der modifizierte Code

@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(""); 
}-*/; 

Fügen Sie diese Änderungen an dem Grid Binding Beispiel. Hoffe das hilft.

Danke, Ganesh

+0

ja ich entlang der Linien dieser Lösung dachte, aber ich war für einen allgemeinen Bindungsmechanismus in GXT mit allen möglichen Komponenten zu arbeiten hoffen. Ich habe in der Zwischenzeit diese Richtung abgebrochen, aber es scheint die plausible Lösung für dieses Problem zu sein. akzeptiere dies als Antwort, danke für deine Zeit und Mühe. –

+0

Beachten Sie, dass ich Ihre Antwort bearbeitet habe, da sie keine Lösung in Bezug auf meine Frage bietet, sondern eine Problemumgehung, indem Sie Auswahlereignisse auslösen, anstatt den Bindungsmechanismus zu verwenden. –