最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

sort page 排序和分頁的小例子

 更新時(shí)間:2013年05月08日 11:05:10   作者:  
花了一上午時(shí)間,終于寫了一個(gè)進(jìn)行排序并且分頁的類,下面將代碼貼出來,望大家指正。
復(fù)制代碼 代碼如下:

/* 系統(tǒng)名:SaleManage
* 模塊名:SortPags
* 模塊說明:排序分頁類(傳入DataTable,及相關(guān)信息,然后分頁,并排序)
* 開發(fā)者:Peter Luo
* 開發(fā)時(shí)間:2012年4月6日
*/
using System;
using System.Collections.Generic;
using System.Linq;
 using System.Text;
 using System.Data ;

 namespace Sale_Core
 {
 public class SortPags
 {
 ///
 /// 存儲傳入的數(shù)據(jù)
 ///
 private DataTable _DtSource = null;
 private DataView _DvSource = null;

 ///
 /// 分頁排序類
 ///
 /// 要分頁或排序的數(shù)據(jù)源
 public SortPags(DataTable dt)
 {
 this._DtSource = dt;
 }

 ///
 /// 分頁排序類
 ///
 /// 要分頁或排序的數(shù)據(jù)源
 public SortPags(DataView dv)
 {
 this._DvSource = dv;
 }

 ///
 /// 頁面總數(shù)
 ///
 private int _PageCount;

 ///
 /// 每頁記錄數(shù)量
 ///
 private int _PageSiz;

 ///
 /// 記錄總數(shù)
 ///
 private int _RowCount;

 ///
 /// 排序類型
 /// ASC 升序
 /// DESC 降序
 ///
 private SortType _SortKind;

 ///
 /// 記錄當(dāng)前頁面Index
 ///
 private int _CurrentPageIndex;

 ///
 /// 數(shù)據(jù)源
 ///
 public DataTable DtSource
 {
 get
 {
 return _DtSource;
 }
 }

 ///
 /// 頁面數(shù)量
 ///
 public int PageCount
 {
 get
 {
 return _PageCount;
 }
 }

 ///
 /// 頁面顯示數(shù)量
 ///
 public int PageSize
 {
 get
 {
 return _PageSiz;
 }
 set
 {
 _PageSiz = value;
 }
 }

 ///
 /// 只讀、不能寫,獲取該數(shù)據(jù)源那數(shù)據(jù)總數(shù)
 ///
 public int RowCount
 {
 get
 {
 return _RowCount;
 }
 }

 public SortType SortKind
 {
 get
 {
 return _SortKind;
 }
 set
 {
 _SortKind = value;
 }
 }

 ///
 /// 記錄當(dāng)前頁面Index
 ///
 public int CurrentPageIndex
 {
 get
 {
 return _CurrentPageIndex;
 }
 }

 public DataView Sort(string sortName, SortType sortKind)
 {
 return new DataView();
 }

 ///
 /// 獲取按照給定字段分頁后的制定頁,(排序->分頁)
 ///
 /// 傳入排序的字段
 /// 排序的類型:SortType.ASC 升序 SortType.DESC 降序
 /// 頁面的大?。撁鎯?nèi)要顯示的記錄的數(shù)量)
 /// 當(dāng)前頁面的index
 ///
 public DataTable GetCurrentPageSortByFileName(string sortName, SortType sortKind, int pageSize, int currentPageIndex)
 {
 if (pageSize == 0)
 return DtSource;//如果沒有填寫pagesize那么返回整個(gè)數(shù)據(jù)源
 if (currentPageIndex <= 0)
 return DtSource; //如果沒有傳入當(dāng)前頁面index,則返回整個(gè)數(shù)據(jù)源
 if (sortName == "")
 return GetCurrentPage(pageSize, currentPageIndex);//如果排序字段沒寫,則只有分頁,不進(jìn)行排序

 DataView dv = new DataView(DtSource);
 switch (sortKind)
 {
 case SortType.DESC :
 dv.Sort = sortName + "DESC";
 break;
 case SortType .ASC :
 dv.Sort = sortName + "ASC";
 break;
 default :
 break;
 }

 _PageSiz = pageSize;
 _CurrentPageIndex = currentPageIndex;

 this._RowCount = this.DtSource.Rows.Count;
 this._PageCount = this.RowCount / this.PageSize;
 if (_PageCount * PageSize < RowCount) //如果計(jì)算出的頁面數(shù)*頁面上的數(shù)據(jù)量小于記錄數(shù),那么頁面大小自動(dòng)+1
 {
 _PageCount++;
 }

 int currentBeginRowIndex = pageSize * (currentPageIndex - 1); //當(dāng)前頁面的開始行
 int currentEndRowIndex = pageSize * currentPageIndex - 1;//當(dāng)前頁面的結(jié)束行
 DataTable dtRes = _DtSource.Clone(); //復(fù)制數(shù)據(jù)源表結(jié)構(gòu)
 for (int i = currentBeginRowIndex; i <= currentEndRowIndex; i++) //復(fù)制當(dāng)前頁面的數(shù)據(jù)到新的datatable中
 {
 if (i >= DtSource.Rows.Count)
 break; //當(dāng)前頁面的記錄小于該頁面應(yīng)該顯示的記錄時(shí),就只取當(dāng)前頁面中的數(shù)據(jù)
 DataRow dr = dtRes.NewRow();
 for (int j = 0; j < _DtSource.Columns.Count; j++)
 {
 dr[j] = dv[i][j];
 }
 dtRes.Rows.Add(dr);
 }
 return dtRes;
 }

 ///
 ///
 ///
 /// 每頁面大小(每個(gè)頁面上記錄的數(shù)量)
 /// 當(dāng)前頁面索引
 ///
 public DataTable GetCurrentPage(int pageSize, int currentPageIndex)
 {
 if (pageSize ==0)
 {
 return DtSource;//如果沒有填寫pagesize那么返回整個(gè)數(shù)據(jù)源
 }
 if (currentPageIndex <= 0)
 {
 return DtSource;//如果沒有傳入當(dāng)前頁面index,則返回整個(gè)數(shù)據(jù)源
 }
 _PageSiz = pageSize;

 _CurrentPageIndex = currentPageIndex;
 this._RowCount = this.DtSource.Rows.Count;
 this._PageCount = this.RowCount / this.PageSize;
 if (_PageCount * PageSize < RowCount) //如果計(jì)算出的頁面數(shù)*頁面上的數(shù)據(jù)量小于記錄數(shù),那么頁面大小自動(dòng)+1
 _PageCount++;
 int CurrentBeginRowIndex = PageSize * (currentPageIndex - 1); //當(dāng)前頁面的開始行
 int CurrentEndRowIndex = PageSize * currentPageIndex - 1; //當(dāng)前頁面的結(jié)束行
 DataView dv;
 if (_DvSource == null)
 dv = new DataView(DtSource);
 else
 dv = _DvSource;
 DataTable dtRes = _DtSource.Clone(); //復(fù)制數(shù)據(jù)源表結(jié)構(gòu)
 for (int i = CurrentBeginRowIndex; i <= CurrentEndRowIndex; i++) //復(fù)制當(dāng)前頁面的數(shù)據(jù)到新的datatable中
 {
 if (i >= DtSource.Rows.Count) break; //當(dāng)前頁面的記錄小于該頁面應(yīng)該顯示的記錄時(shí),就只取當(dāng)前頁面中的數(shù)據(jù)
 DataRow dr = dtRes.NewRow();
 for (int j = 0; j < _DtSource.Columns.Count; j++)
 {
 dr[j] = dv[i][j];
 }
 dtRes.Rows.Add(dr);
 }
 return dtRes;
 }
 public enum SortType
 {
 ASC, //升序排列
 DESC //倒序排列
 }
 }
 } 

相關(guān)文章

  • Unity色子的投擲和點(diǎn)數(shù)的獲得詳析

    Unity色子的投擲和點(diǎn)數(shù)的獲得詳析

    這篇文章主要給大家介紹了關(guān)于Unity色子的投擲和點(diǎn)數(shù)的獲得的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • C#中List和SortedList的簡介

    C#中List和SortedList的簡介

    今天小編就為大家分享一篇關(guān)于C#中List和SortedList的簡介,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • C#調(diào)用Oracle存儲過程的方法

    C#調(diào)用Oracle存儲過程的方法

    這篇文章主要介紹了C#調(diào)用Oracle存儲過程的方法,包含數(shù)據(jù)庫及C#對應(yīng)的調(diào)用代碼,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • C# List的賦值問題的解決

    C# List的賦值問題的解決

    本文主要介紹了C# List的賦值問題的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 詳解C# winform ListView的基本操作

    詳解C# winform ListView的基本操作

    本文主要介紹了C# winform ListView的基本操作,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C#異常捕獲機(jī)制圖文詳解

    C#異常捕獲機(jī)制圖文詳解

    在本文中我們給大家分享了關(guān)于C#異常捕獲機(jī)制的相關(guān)知識點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2019-02-02
  • C#使用Directoryinfo類獲得目錄信息和屬性的方法

    C#使用Directoryinfo類獲得目錄信息和屬性的方法

    這篇文章主要介紹了C#使用Directoryinfo類獲得目錄信息和屬性的方法,涉及C#操作目錄的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • c#友好顯示日期 c#日期datetime使用方法

    c#友好顯示日期 c#日期datetime使用方法

    c# datetime根據(jù)日期顯示幾秒前、幾分前、幾天前、幾月前、幾年前等格式
    2014-01-01
  • C#中Arraylist的sort函數(shù)用法實(shí)例分析

    C#中Arraylist的sort函數(shù)用法實(shí)例分析

    這篇文章主要介紹了C#中Arraylist的sort函數(shù)用法,較為詳細(xì)的分析了ArrayList的sort函數(shù)的功能、定義及具體使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • C# 設(shè)計(jì)模式系列教程-命令模式

    C# 設(shè)計(jì)模式系列教程-命令模式

    在軟件系統(tǒng)中,行為請求者與行為實(shí)現(xiàn)者通常是一種緊耦合的關(guān)系,但某些場合,比如需要對行為進(jìn)行記錄、撤銷或重做、事務(wù)等處理時(shí),這種無法抵御變化的緊耦合的設(shè)計(jì)就不太合適。
    2016-06-06

最新評論

仪陇县| 潞西市| 固镇县| 遂川县| 资溪县| 长泰县| 司法| 札达县| 乐山市| 木兰县| 怀化市| 都兰县| 平湖市| 依安县| 嘉祥县| 四子王旗| 南阳市| 拉孜县| 吉林省| 清流县| 仁化县| 曲阜市| 莒南县| 大方县| 石首市| 齐河县| 宜章县| 繁峙县| 威远县| 鄂托克旗| 承德市| 长寿区| 讷河市| 上思县| 阳新县| 洛隆县| 缙云县| 萨嘎县| 婺源县| 峡江县| 陇南市|