1

PrimeFaces の DataTable で別のページネーション方法を使用しようとしています。

私がやりたいことは、新しいページが「垂直に」表示されるようにするため、新しくロードされたデータを前の DataTable の最後に追加する必要があることです。

Facebook のホーム ストリームのようなもので、[古い投稿を読み込む] をクリックすると最新の投稿の下に表示されます。

これは可能ですか??

ページネーターを使用してほとんどすべてを試しましたが、「垂直」な dataTable を構築する方法がないようです。

PrimeFaces を使用していない場合、必要なコンポーネントはありますか?

ロードは遅延する必要があるため、ユーザーが新しいデータをロードすることを決定するたびに、クエリを実行する必要があります。リストなどはありません!

ありがとう :)

編集:

JSFページ

<pou:dataTable scrollable="true" liveScroll="true" scrollHeight="400" scrollRows="100" value="#{postListBean_1.posts}" var="post">
    <pou:column>
        #{post.testo}
        <hr/>
    </pou:column>                        
</pou:dataTable>

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ManagedBeans;

import ejb.PostManagerLocal;
import entity.Post;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

/**
 * La classe si occupa di gestire lo scambio di messaggi tra utenti. Da
 * implementare ancora i metodi per l'invio e per la segnalazione dell'avvenuta
 * lettura.
 *
 * @author stefano
 */
@ManagedBean
@RequestScoped
public class PostListBean_1 implements Serializable {

    @EJB
    private PostManagerLocal postManager;
    private List<Post> posts;
    private int limit = 0;

    /**
     * Get the value of posts
     *
     * @return the value of posts
     */
    public List<Post> getPosts() {
        limit+=4;
        makePosts();
        return posts;
    }

    /**
     * Set the value of posts
     *
     * @param posts new value of posts
     */
    public void setPosts(List<Post> posts) {
        this.posts = posts;
    }

    /**
     * Creates a new instance of PostListBean
     */
    public PostListBean_1() {
    }

    /**
     * Inizializza la lista dei posts, prendendoli in ordine inverso, in modo da
     * avere prima i più recenti
     */
    @PostConstruct
    public void makePosts() {
        int[] range = {0, limit};
        posts = postManager.findRangeReverse(range);
    }
}
4

0 に答える 0