winfrom中的datagrid的翻页类
[ 作者:佚名 来源:网络 点击数:104 加入时间:2006-1-14 ]
【双击左键自动滚屏】【图片上滚动鼠标滚轮变焦图片】
【字体:放大 正常 缩小 】
字体颜色:
选择颜色
浅 蓝
黑 色
红 色
黄 色
绿 色
橙 色
紫 色
蓝 色
褐 色
墨 绿
深 蓝
赭 石
粉 绿
淡 绿
黄 灰
翠 绿
综 红
砖 红
淡 蓝
暗 红
玫瑰红
紫 红
桔 黄
军 黄
烟 灰
深 灰
灰 蓝
便民查询 中华五千年 世界五千年 万年历 天气预报 周公解梦 脑筋急转弯 在线翻译 电信话费查询
using System;
using System.Windows.Forms;
using System.Data;
namespace HRMS.Common
{
/// <summary>
/// HRDataGrid 的摘要说明。
/// </summary>
public class HRDataGrid:DataGrid
{
private void InitializeComponent()
{
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}
public HRDataGrid()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 总页数
/// </summary>
private int pageCount=1;
/// <summary>
/// 每页行数
/// </summary>
private int pageRows=40;
/// <summary>
/// 总行数
/// </summary>
private int rowCount=1;
/// <summary>
/// 当前页
/// </summary>
private int curentPageIndex=0;
/// <summary>
/// 能否前进
/// </summary>
private bool canPri=false;
/// <summary>
/// 能否后退
/// </summary>
private bool canNext=false;
/// <summary>
/// 邦订表
/// </summary>
private DataTable buildDataTable=new DataTable();
/// <summary>
/// 邦订对应的表
/// </summary>
/// <param name="dt"></param>
public void SetHRDataSource(DataTable dt)
{
this.buildDataTable=dt;
this.rowCount=dt.Rows.Count;
this.pageCount=rowCount/pageRows;
if(rowCount % pageRows>0)
{
this.pageCount=this.pageCount+1;
}
if(pageCount<1)
{
PageCount=1;
}
if(pageCount>curentPageIndex)
{
this.canNext=true;
}
else
{
this.canNext=false;
}
if(curentPageIndex>1)
{
this.canPri=true;
}
else
{
this.canPri=false;
}
BuildTable(this.curentPageIndex);
}
/// <summary>
/// 下一页
/// </summary>
public void NextPage()
{
if(!canNext)
{
MessageBox.Show("已经到最后一页!");
return;
}
this.canPri=true;
this.curentPageIndex=curentPageIndex+1;
if(curentPageIndex>=this.pageCount)
{
this.canNext=false;
}
else
{
this.canNext=true;
}
BuildTable(curentPageIndex);
}
/// <summary>
/// 前一页
/// </summary>
public void PriPage()
{
if(!canPri)
{
MessageBox.Show("已经到最前一页!");
return;
}
this.canNext=true;
this.curentPageIndex=curentPageIndex-1;
if(curentPageIndex<=1)
{
this.canPri=false;
}
else
{
this.canPri=true;
}
BuildTable(curentPageIndex);
}
private void BuildTable(int index)
{
if(index<1)
{
index=1;
}
if(index>this.pageCount)
{
index=this.pageCount;
//throw new Exception("需要邦订的页数超出范围!");
}
DataTable tempTable=this.buildDataTable.Copy();
tempTable.Clear();
int start=(index-1)*pageRows;
int end=index*pageRows;
if(end>this.rowCount)
{
end=this.rowCount;
}
for(int intx=start;intx<end;intx++)
{
DataRow dr=tempTable.NewRow();
dr.ItemArray=((DataRow)(this.buildDataTable.Rows[intx])).ItemArray;
tempTable.Rows.Add(dr);
}
this.DataSource=tempTable;
}
public bool CanPri
{
set
{
this.canPri=value;
}
get
{
return this.canPri;
}
}
public bool CanNext
{
set
{
this.canNext=value;
}
get
{
return this.canNext;
}
}
public int CurentPageIndex
{
set
{
this.curentPageIndex=value;
}
get
{
return this.curentPageIndex;
}
}
public int RowCount
{
set
{
this.rowCount=value;
}
get
{
return this.rowCount;
}
}
public int PageCount
{
set
{
this.pageCount=value;
}
get
{
return this.pageCount;
}
}
public int PageRows
{
set
{
this.pageRows=value;
}
get
{
return this.pageRows;
}
}
public DataTable BuildDataTable
{
set
{
this.buildDataTable=value;
}
get
{
return this.buildDataTable;
}
}
}
}
调用这个类:
//Set dataTable
public void BuildingGridData(DataSet ds)
{
this.dataGrid_person.SetHRDataSource(ds.Tables[0]);
this.toolBarButton_priPage.Enabled=dataGrid_person.CanPri;
this.toolBarButton_nextPage.Enabled=dataGrid_person.CanNext;
this.statusBarPanel_GrifInfo.Text="第"+dataGrid_person.CurentPageIndex.ToString()+"页/共"+dataGrid_person.PageCount.ToString()+"页";
this.statusBarPanel_GridRows.Text="共"+dataGrid_person.RowCount.ToString()+"笔记录";
}
//点按上一页
this.dataGrid_person.PriPage();
this.toolBarButton_priPage.Enabled=dataGrid_person.CanPri;
this.toolBarButton_nextPage.Enabled=dataGrid_person.CanNext;
//点按下一页
this.dataGrid_person.NextPage();
this.toolBarButton_priPage.Enabled=dataGrid_person.CanPri;
this.toolBarButton_nextPage.Enabled=dataGrid_person.CanNext;
国家纸币 自考信息 度量转换 搜索引擎指南 城市经纬度 脑筋急转弯 各国资料 名言辞典 违章查询
·上一篇文章:Window.Open详解 ·下一篇文章:asp文件夹
百度搜索更多内容: winfrom中的datagrid的翻页类
【推荐文档 】 【打印文档 】 【返回页首 】 【关闭窗口 】