Domanda

Sto cercando di costruire una tabella con ampio set di dati e vorrebbe evitare di paging. (Mi piacerebbe fare qualcosa di simile a griglia di Yahoo Mail, che recupera i dati dopo la griglia viene disegnata. Credo che inizialmente i primi 100 messaggi sono recuperati e poi mail è recuperata solo dopo che l'utente scorre verso il basso)

L'esempio della presentazione dei dati widget di Ho visto includono paging. E 'possibile fare ciò che voglio?

Modifica Si potrebbe anche chiamare questa una tabella di scorrimento infinito

È stato utile?

Soluzione

Dean già accennato Ext GWT, ma vorrei suggerire implementazione di SmartGWT pure.

Altri suggerimenti

Ci sono un esempio di questo nel GWT Vetrina

/**
 * A scrolling pager that automatically increases the range every time the
 * scroll bar reaches the bottom.
 */
public class ShowMorePagerPanel extends AbstractPager {

  /**
   * The default increment size.
   */
  private static final int DEFAULT_INCREMENT = 20;

  /**
   * The increment size.
   */
  private int incrementSize = DEFAULT_INCREMENT;

  /**
   * The last scroll position.
   */
  private int lastScrollPos = 0;

  /**
   * The scrollable panel.
   */
  private final ScrollPanel scrollable = new ScrollPanel();

  /**
   * Construct a new {@link ShowMorePagerPanel}.
   */
  public ShowMorePagerPanel() {
    initWidget(scrollable);

    // Handle scroll events.
    scrollable.addScrollHandler(new ScrollHandler() {
      public void onScroll(ScrollEvent event) {
        // If scrolling up, ignore the event.
        int oldScrollPos = lastScrollPos;
        lastScrollPos = scrollable.getScrollPosition();
        if (oldScrollPos >= lastScrollPos) {
          return;
        }

        HasRows display = getDisplay();
        if (display == null) {
          return;
        }
        int maxScrollTop = scrollable.getWidget().getOffsetHeight()
            - scrollable.getOffsetHeight();
        if (lastScrollPos >= maxScrollTop) {
          // We are near the end, so increase the page size.
          int newPageSize = Math.min(
              display.getVisibleRange().getLength() + incrementSize,
              display.getRowCount());
          display.setVisibleRange(0, newPageSize);
        }
      }
    });
  }

  /**
   * Get the number of rows by which the range is increased when the scrollbar
   * reaches the bottom.
   *
   * @return the increment size
   */
  public int getIncrementSize() {
    return incrementSize;
  }

  @Override
  public void setDisplay(HasRows display) {
    assert display instanceof Widget : "display must extend Widget";
    scrollable.setWidget((Widget) display);
    super.setDisplay(display);
  }

  /**
   * Set the number of rows by which the range is increased when the scrollbar
   * reaches the bottom.
   *
   * @param incrementSize the incremental number of rows
   */
  public void setIncrementSize(int incrementSize) {
    this.incrementSize = incrementSize;
  }

  @Override
  protected void onRangeOrRowCountChanged() {
  }
}

Sì, è possibile. Ci deve essere utilizzato un esempio di quella chiamata DynaGrid qui ma che puntano è morto oggi. Non sono stato in grado di trovare in qualsiasi altro luogo (nota: che non è la stessa della su SourceForge DynaGrid ). Potreste essere in grado di contattare l'autore, Reinier Zwitserloot, per informarsi su come ottenere una copia del suo DynaGrid. Si potrebbe anche cercare il GWT Gruppo e se non trovate nulla, postare lì chiedendo se qualcuno altro sa dove trovarlo.

Ext Gwt (AKA GXT) ha un'implementazione di un "Live Grid" che supporta questa funzionalità (vedi http://www.sencha.com/examples/explorer.html#livegrid ). Il codice è GPL anche se è possibile acquistare una licenza per utilizzare questo in applicazioni commerciali.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top