Как использовать привязку из сетки к шаблону HTML? - PullRequest
0 голосов
/ 27 марта 2012

возможно ли использовать механизм привязки GXT для привязки Grid к Html (или другой реализации Widget в этом отношении)?

кажется из примеров что это применимо только к формам (FormBinding), в то время как моя цель состоит в том, чтобы Template обновить внутренний элемент виджетов, управляемый сеткой SelectionChangedEvent, отправляющей модели для этого шаблона.

1 Ответ

0 голосов
/ 29 марта 2012

Связывание сеток и общих компонентов напрямую невозможно в текущей версии GXT, в любом случае это альтернативное решение, предлагаемое в качестве обходного пути:

Я только что использовал примеры Связывание сетки и Шаблоны , чтобы удовлетворить ваши требования. Вот модифицированный код

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

Добавьте эти модификации в пример Связывание сетки . Надеюсь, это поможет.

Спасибо, Ганеш

...