1. 程式人生 > >AspNetPager分頁

AspNetPager分頁

【介紹】

AspNetPage針對.NET分頁控制元件的不足,提出了與眾不同的解決.NET分頁問題的方案,即將分頁導航功能與資料顯示功能完全獨立開來,由使用者自己控制資料的獲取及顯示方式,因此可以被靈活地應用於任何需要實現分頁導航功能的地方。

 

【實現】

一、下載AspNetPager分頁控制元件

點選下載

 

二、新增控制元件

  • 先把下載的檔案放在一個比較容易找到的地方

  • 在工具箱中右擊——選擇項——com元件——瀏覽——找到下載好的AspNetPager.dll檔案——確定

  • 在Web層新增引用——(左側)瀏覽——(右下角)瀏覽——AspNetPager.dll

檔案——確定

 

三、前臺顯示程式碼Newsmanager.aspx

 <webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%"                       
         NumericButtonCount="6" UrlPaging="true"
        CustomInfoHTML="總計%RecordCount%條記錄,共%PageCount%頁"        
        ShowCustomInfoSection="left"
        FirstPageText="首頁" LastPageText="末頁" NextPageText="下頁" PrevPageText="上頁"
        Font-Names="Arial" BackColor="#F8B500" AlwaysShow="true" ShowInputBox="Always"
        SubmitButtonStyle="botton" OnPageChanged="AspNetPager1_PageChanged">
    </webdiyer:AspNetPager>

 四、Newsmanager.aspx.cs程式碼

protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            { 
              BindGrid(); 
                   AspNetPager1.RecordCount = new NewsManager().SelectAll().Rows.Count;
          }
        }
        protected void AspNetPager1_PageChanged(object sender, EventArgs e)
        {
            BindGrid();
        }
        
 private void BindNews()
        {
            repNews.DataSource = new NewsManager().FenyeSelect(AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex);
            repNews.DataBind();
        }

 

五、D層程式碼

想更加清楚的瞭解row_number()排序函式的請點選下面連結

ROW_NUMBER() 排序函式

public DataTable FenyeSelect(int startIndex,int endIndex)
        {
            
            string sql = "with template as (select ROW_NUMBER() over(order by ID desc) as 行號,*from News) select * from template where 行號 between @startIndex and @endIndex";
            SqlParameter[] sqlParameters =  { new SqlParameter("@startIndex", startIndex),
                                              new SqlParameter("@endIndex",endIndex)};
            DataTable dt = new SQLHelper().ExecuteQuery(sql, sqlParameters, CommandType.Text);
            return dt;
        }

六、B層程式碼

 

 public DataTable FenyeSelect(int startIndex,int endIndex)
        {
            return nado.FenyeSelect(startIndex, endIndex);
        }

【總結】

AspNetPager支援使用主題(Theme)與面板(skin)統一控制元件的整體格式,配合ASP.NET中DataSource控制元件,AspNetPager只需要編寫短短几行程式碼,甚至無需編寫任何程式碼,只需要設定幾個屬性就可以實現分頁功能