天天看點

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

      适用範圍:網站背景管理、OA、CRM、CMS等,從關系型資料庫裡提取資料,願意使用Pager_SQL、DataAccessLibrary的情況。

      最佳資料庫:MS SQL。

      優點:隻需要設定幾個屬性即可,不用編寫“分頁事件”的處理代碼。可以很友善的實作查詢功能,以及儲存查詢條件。

      使用方法:

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

using JYK.Data;

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

using JYK.Controls;

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

using JYK.Controls.Pager;

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

namespace JYK.Manage.Help.QuickPager

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

{

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

    /**//// <summary>

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

    /// PostBack分頁方式、自定義提取資料的使用方法 

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

    /// </summary>

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

    public partial class postback01 : System.Web.UI.Page

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        protected override void OnInit(EventArgs e)

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            base.OnInit(e);

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //資料通路函數庫的執行個體

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            DataAccessLibrary dal = DALFactory.CreateDAL();

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Pager1.DAL = dal;

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //定義QuickPager_SQL,設定Page屬性

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Pager1.PagerSQL.Page = this;

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //設定顯示資料的控件

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Pager1.ShowDataControl = this.GV;

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        }

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        protected void Page_Load(object sender, EventArgs e)

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            if (!Page.IsPostBack)

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

                SetPagerInfo();         //設定表名、字段名等

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            }

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        給QuickPager_SQL 設定屬性,以便拼接SQL#region 給QuickPager_SQL 設定屬性,以便拼接SQL

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        private void SetPagerInfo()

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Pager1.PagerSQL.TableName = "News_NewsInfo";          //表名或者視圖名稱

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Pager1.PagerSQL.TableShowColumns = "*";               //需要顯示的字段

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Pager1.PagerSQL.TableIDColumn = "NewsID";             //主鍵名稱,不支援複合主鍵

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Pager1.PagerSQL.TableOrderByColumns = "NewsID"; //排序字段,根據分頁算法而定,可以支援多個排序字段

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Pager1.PagerSQL.TableQuery = "";                      //查詢條件

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Pager1.PageSize = 4;                                        //一頁顯示的記錄數

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //設定分頁方式

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Pager1.PagerSQL.SetPagerSQLKind = PagerSQLKind.MaxMin;

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        #endregion

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        在拼接SQL和提取資料、自動綁定控件之前觸發,#region 在拼接SQL和提取資料、自動綁定控件之前觸發,

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        protected void Pager1_PageChanged(object sender, JYK.Controls.Pager.PageArgs e)

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //在拼接SQL和提取資料、自動綁定控件之前觸發,

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Response.Write("綁定前<BR>");

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        在自動綁定控件之後觸發,#region 在自動綁定控件之後觸發,

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        protected void Pager1_GridBinded(object sender, JYK.Controls.Pager.PageArgs e)

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //在自動綁定控件之後觸發

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //計算時間

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Response.Write("綁定後,使用的SQL語句:");

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            Response.Write(Pager1.PagerSQL.GetSQLByPageIndex(Pager1.PageIndex));               //測試用

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        處理查詢資料的情況#region 處理查詢資料的情況

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        protected void Btn_Search_Click(object sender, EventArgs e)

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //擷取查詢條件

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            string query = "";

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            string tmp = "";

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            tmp = this.Txt_Title.TextTrimNone;

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            if (tmp.Length > 0)

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

                if (query.Length == 0)

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

                    query = " title like '%" + tmp + "%'";

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

                else

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

                    query += " and title like '%" + tmp + "%'";

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //還可以添加其他的查詢條件,這裡省略

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //給QuickPager_SQL 設定查詢條件

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            this.Pager1.PagerSQL.TableQuery = query;

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //重新拼接SQL語句

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            this.Pager1.PagerSQL.CreateSQL();

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //綁定控件,顯示第一頁的資料

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            this.Pager1.BindFirstPage();

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        添加後重新顯示資料#region 添加後重新顯示資料

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        protected void Btn_Add_Click(object sender, EventArgs e)

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //添加新的資料後,顯示第一頁的資料

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        修改資料後重新顯示目前頁的資料#region 修改資料後重新顯示目前頁的資料

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        protected void Btn_Mod_Click(object sender, EventArgs e)

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //比如在第三頁修改了一條資料,修改完畢後,重新顯示第三頁的資料。

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            this.Pager1.BindThisPage();

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

        protected void Btn_Del_Click(object sender, EventArgs e)

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //比如在第三頁删除了一條資料後,重新顯示第三頁的資料。

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            //和修改資料後重新顯示的差別在于,删除資料後需要重新統計總記錄數,和總頁數

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

            this.Pager1.BindThisPageForDelete();

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)
分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

    }

分頁解決方案 之 QuickPager的使用方法(PostBack分頁、自動擷取資料)

}