天天看點

分頁控件和幾個相關控件的源代碼

分頁控件的源代碼,可能會讓有些人失望,因為代碼很亂。亂的一個原因呢,可能是沒有采用OO的思路吧,因為寫控件的時候還一點都不會OO呢,隻是一直在用,也就沒有作大的重構。

有兩個分頁控件,

一個是通過PostBack來分頁的,一個是通過URL來分頁的。

先說PostBack的吧。

推薦使用環境,背景管理、OA等。

優點呢就是可以利用ViewState來儲存很多資訊,比如總記錄數、查詢語句、查詢條件、等等,可以提高一些效率。

URL的。

這個是後完成的,代碼能稍微好一點,由于不能使用ViewState,是以好多地方都比較别扭。

恩,還是有點亂,還是說一下使用方法吧。

分頁控件自帶了兩種分頁算法。為什麼要有兩種分頁算法呢?因為分頁的要求是不一樣的呀。

1、一個排序字段,且排序字段沒有重複值。

2、多個排序字段,且最後一個排序字段沒有重複值。

3、一個排序字段,且排序字段有重複值。

4、多個排序字段,且最後一個排序字段有重複值。

對于3和4,大多數情況都可以通過增加一個排序字段(比如自鍵)的方式變成第2種。

第一種情況比較簡單了。

對于第一種情況,分頁控件設定起來也很簡單。

分頁控件和幾個相關控件的源代碼

private void Page_Load(object sender, System.EventArgs e)

分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼

{

分頁控件和幾個相關控件的源代碼

            // 在此處放置使用者代碼以初始化頁面

分頁控件和幾個相關控件的源代碼

            Response.Cache.SetNoStore();

分頁控件和幾個相關控件的源代碼

            Page1.PubShowDataObject = DG;        //設定顯示資料的控件,還可以是DataList、Repeater 等。

分頁控件和幾個相關控件的源代碼

            if (!Page.IsPostBack)

分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼

                SetPageInfo();

分頁控件和幾個相關控件的源代碼

            }

分頁控件和幾個相關控件的源代碼

        }

分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼

private void SetPageInfo()

分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼

            Page1.SqlTableNames = TableName;        //表名或者視圖名

分頁控件和幾個相關控件的源代碼

            Page1.SqlColumns  = "*";                //顯示的字段

分頁控件和幾個相關控件的源代碼

            Page1.SqlOrderColumn = "col2";            //排序字段

分頁控件和幾個相關控件的源代碼

            Page1.SqlOrderColumnKind = "string";    //排序字段的類型

分頁控件和幾個相關控件的源代碼

            Page1.SqlPageSize  = 10;                //一頁的記錄數

分頁控件和幾個相關控件的源代碼

            Page1.IsOrderDesc = true;                //是否倒序

分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼

            Page1.CreateQuery() ;                    //建立SQL語句

分頁控件和幾個相關控件的源代碼

            Page1.BindFirstPage();                    //綁定第一頁的資料

分頁控件和幾個相關控件的源代碼

主要就是設定屬性,回發事件會自動處理,一般情況是不用再寫揮發的事件了。

短短十行就搞定了。運個行吧,隻要屬性設定正确就可以正确分頁了。

對了,連接配接字元串的問題。

在Web.Config裡面添加“ConnStr”就可以了。

分頁控件和幾個相關控件的源代碼

<appSettings>

分頁控件和幾個相關控件的源代碼

    <add key="ConnStr" value="data source=.;initial catalog=Test;persist security info=False;user id=sa;pwd=admin;" />

分頁控件和幾個相關控件的源代碼

 </appSettings>

分頁控件和幾個相關控件的源代碼

第二種情況稍微複雜一點,

PageLoad部分是一樣的,隻是在 SetPageInfo2 多設定幾個屬性就可以了。

分頁控件和幾個相關控件的源代碼

private void SetPageInfo2()

分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼

            Page1.SetSQLKind = "2";                    //表示采用第2種分頁算法。

分頁控件和幾個相關控件的源代碼

            Page1.SqlPowerIDColumn = "ID";            //表的主鍵,注意:複合主鍵不可以!

分頁控件和幾個相關控件的源代碼

            Page1.SqlPowerOrderColumnA = "col1 ,col2 desc , col3 , 

分頁控件和幾個相關控件的源代碼

";    //多個排序字段。

分頁控件和幾個相關控件的源代碼

            Page1.SqlPowerOrderColumnB = "col1 desc ,col2 , col3 desc ,

分頁控件和幾個相關控件的源代碼

";    //多個排序字段,和上面的對應,但是排序方式相反。

分頁控件和幾個相關控件的源代碼

            Page1.SqlPowerHasMoreValue = true;        //最後一個排序字段是否有重複值。

分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼
分頁控件和幾個相關控件的源代碼

下載下傳位址;

http://files.cnblogs.com/jyk/Send.rar

<a href="http://files.cnblogs.com/jyk/Send.rar">http://files.cnblogs.com/jyk/Send.rar</a>

分頁效果

分頁控件和幾個相關控件的源代碼

繼續閱讀