PageDataSourceクラスはRepeaterページングの問題を簡単に解決

1449 ワード


データバインディング関数を書きます.PageDataSourceの操作コードはすべてその中にあります.最後にPage_loadイベントでこの方法を実行すればいいです.
自分でページングコードを書くよりも簡潔で便利です.特に私のような初心者では、一番頭が痛いのはページ分けの問題です.
 
バックグラウンドコード:
private void PageDataBind()
    {
        PagedDataSource myPage = new PagedDataSource();
        myPage.DataSource = ((DataTable)_user._SqlReader("SELECT * FROM [FeedBack] ORDER BY ID DESC")).DefaultView;
        myPage.AllowPaging = true;
        myPage.PageSize = 5;

        int curPage;

        if (Request["Page"] != null)
            curPage = Convert.ToInt32(Request["Page"]);
        else
            curPage = 1;

        myPage.CurrentPageIndex = curPage - 1;

        lblCurPage.Text = "     " + curPage.ToString() + "  ";

        if (myPage.PageCount > 0)
        {
            if (!myPage.IsFirstPage)
            {
                InkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(curPage - 1);
            }
            else
                InkPrev.Visible = false;

            if (!myPage.IsLastPage)
            {
                InkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(curPage + 1);
            }
            else
                InkNext.Visible = false;
        }

        Repeater1.DataSource = myPage;
        Repeater1.DataBind();
    }

 
フロントページに追加されたコントロールコード:
前ページ次ページ