【開源】QuickPager ASP.NET2.0分頁控制元件——使用示例、基本應用和查詢功能
myPage分頁控制元件發出來之後,雖然開源了,但是沒有給一個簡單一點的 demo,真是漏掉了一個很重要的部分。
先說明一下使用myPage分頁控制元件需要的檔案。
Controls.dll :這個是分頁控制元件的dll檔案,您可能要問,為什麼不叫 myPage.dll呢?因為裡面不僅有分頁控制元件,還包含其他的控制元件,比如擴充套件功能的TextBox等控制元件,這是多個控制元件的集合,所以就叫做 Controls.dll 了。對應的有一個Controls.XML檔案,裡面放的是控制元件裡的屬性、函式、事件的提示說明。這個可以更方便使用。需要把這兩個檔案放在bin目錄裡面。
提示效果:
DataAccess2.0.dll :這個不屬於分頁控制元件,他是資料訪問函式庫的dll檔案,因為分頁控制元件要呼叫這裡面的函式來提取資料,所以也需要把這個dll檔案放在bin目錄下面。他也有一個對應的 DataAccess2.0.xml 檔案。
壓縮包裡的其他檔案
vs200802.dll 這個是演示程式的 dll檔案。
Default.aspx 這裡就是分頁控制元件的演示程式碼了。
要想寫一個demo還真不是容易的事情,IDE就有兩個,vs2005和vs2008,有都可以建立“網站”和“專案”,組合一下就是四種demo。我比較懶,給自己偷個懶吧,用vs2005寫一個建立“網站”的demo,再用vs2008寫一個“專案”的demo吧。(ps:vs2005還沒有打上sp1呢,所以想建立專案也建立不了:) )
先說一下公用的部分吧,需要在web.config裡面配置連線字串和資料庫型別。
<appSettings> <add key="DataType" value="1"/> </appSettings> <connectionStrings> <add name="ConnStr" connectionString="Data Source=.;Initial Catalog=AdventureWorks ;persist security info=False;user id=sa;pwd=admin;" providerName="System.Data.SqlClient"/> </connectionStrings> <system.web>
DataType = 1 表示使用sql Server資料庫。
ConnStr 是連線字串。這裡使用 SQL Server2005自帶的 AdventureWorks 資料庫,不知道大家有沒有安裝。如果沒有安裝的話,需要在這裡換成其他的資料庫。當然 Data Source 等也需要做相應的修改。
下面說一下vs2005裡面使用分頁控制元件地方法,截了幾個圖,方便大家閱讀。
1、新增引用。
怎麼建立專案就不用說了吧。專案建立之後需要引用分頁控制元件需要的dll檔案。
在“解決方案資源管理器”點選右鍵,選擇“新增引用”。
然後呢會開啟“新增引用”對話方塊,選擇“瀏覽”標籤。
找到 Controls.dll 檔案,單擊確定。好了,分頁控制元件就會被引用到專案裡了。下一步是在工具箱裡面新增分頁控制元件。
2、工具箱裡新增分頁控制元件。
點選“選擇項”,開啟“選擇工具箱項”
使用“瀏覽”按鈕,找到Controls.dll 檔案,然後裡面的控制元件就會載入進來,就是選中的這幾個。單擊確定,就可以加到工具箱裡面了。
然後往頁面上拽一個GridView,和一個JYKPage(控制元件裡還沒有改名:) ),用做測試,GridView的ID是GV,分頁控制元件的ID:myPage1。GridView採用“自動生成欄位”的方式。
dll和控制元件都載入完畢,下面可以寫程式碼了
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
setPageInfo();
}
private void setPageInfo()
{
//以下三個屬性必須賦值
this.myPage1.ControlGridID = this.GV.ID;
this.myPage1.TableName = " Person.Contact"; //表名或者檢視名
this.myPage1.TableOrderColumns = "FirstName,ContactID "; //排序欄位,可以寫多個欄位
//以下屬性可以不賦值
this.myPage1.TableShowColumns = "*"; //顯示的欄位,可以不填,預設為 *
this.myPage1.PageSize = 5; //一頁顯示的記錄數,預設一頁顯示20條記錄
this.myPage1.TableQuery = ""; //查詢條件,不包含 where
this.myPage1.NaviCount = 8; //頁號導航的數量,預設10個
//這個函式必須執行,而且要在給上面的屬性賦值之後執行。
this.myPage1.BindFirstPage();
}
然後執行程式。提示一下,執行前要修改web.config檔案,設定連線字串。另外還有一點,需要在根目錄下面建立一個 log資料夾,如果執行程式出現錯誤(和資料訪問相關的),那麼會在這個資料夾裡面建立一個文字檔案,在裡面寫出錯資訊,您可以根據這裡的資訊來判斷出錯的原因。
需要給log資料夾設定一下許可權,User使用者的“寫入”許可權,否則無法寫入資訊。如圖:
如果沒有什麼意外的話,您會看到下面的效果。
GridView沒有做什麼處理,大家忍受一下先。:)
最少寫四行程式碼就可以實現分頁的功能,顯示資料就交給GridView了。什麼您問是不是漏了一件事情,翻頁時產生的事件還沒有說呢,這個在預設的情況下是不用自行處理的。分頁控制元件就可以自己處理。
還要寫程式碼,好像沒有GridView + SQLDataSource方便。我想了一下,好像確實沒有什麼優勢,要說優點嘛,好像只有兩個,一個是分頁控制元件是按需索取,一頁顯示五條資料的話,那麼就到資料庫裡提取五條,多一條不取(聽說GridView在分頁的時候還是會把表裡的資料都拿出來,然後在記憶體裡面分頁)。另一個就是,GridView + SQLDataSource只能在vs05、08裡面使用,不能在vs2003裡面使用,而我的分頁控制元件可以在vs2003裡面使用。當然要選用for .net1.1的版本。
(ps:04年底,分頁控制元件就可以這麼用了。)
下面說一下vs2008裡面使用分頁控制元件的方法,其實和在05裡面也沒有什麼大的區別。
1、引用dll檔案
2、工具裡新增分頁控制元件
3、編寫程式碼。這個嘛,其實和vs05裡面的是一樣的,就不重複貼了。
4、執行。
還是要先修改一下web.config檔案,再根目錄裡面建立一個log資料夾。
最後說一下如何實現查詢功能。
在頁面裡拖拽兩個JYKTextBox,對沒寫錯買就是這個,他在分頁控制元件的下數第二個控制元件,再加一個button按鈕。
我們假設需要按照欄位 LastName、Phone 來進行模糊查詢。在按鈕的Btn_Search_Click事件裡面寫如下程式碼即可。
protected void Btn_Search_Click(object sender, EventArgs e)
{
//TableName等屬性已經在ViewState 裡面儲存了,所以查詢的時候不用再次賦值。
//組合查詢條件
string query = "";
string key = this.Txt_LastName.TextTrimNone;
if (key.Length > 0)
{
query = "LastName like '%" + key + "%'";
}
key = this.Txt_Phone.TextTrimNone;
if (key.Length > 0)
{
if (query.Length == 0)
query = "Phone like '%" + key + "%'";
else
query += " and Phone like '%" + key + "%'";
}
this.myPage1.TableQuery = query; //新增查詢條件
this.myPage1.BindFirstPage(); //重新顯示資料,控制元件內部會重新生成SQL語句。
}
執行效果
demo的下載地址:http://www.cnblogs.com/jyk/archive/2008/04/25/1170979.html
還是在隨筆的下面。