DataGridView分页及分页后页面操作(上页、下页、页面跳转)类
来源:互联网 发布:快鱼服饰网络专卖店 编辑:程序博客网 时间:2024/04/30 16:09
class Pagination
{
private static int pageSize = 0; //每页显示行数
private static int nMax = 0; //总记录数
private static int pageCount = 0; //页数=总记录数/每页显示行数
private static int pageCurrent = 0; //当前页号
private static int nCurrent = 0; //当前记录行
private static DataTable dtInfo = new DataTable();
private static DataSet objSet;
private static System.Windows.Forms.DataGridView dgvInfo;
private static ImageList imageList1;
private static ToolStripLabel lblPageCount;
private static ToolStripButton lbl4; //上一页
private static ToolStripButton lbl6; //下一页
private static ToolStripTextBox txtCurrentPage;
private static BindingNavigator bdnInfo;
private static BindingSource bdsInfo;
private static ToolStripStatusLabel StripStatusLabel;
public static System.Windows.Forms.DataGridView _dgvInfo
{
get { return dgvInfo; }
set { dgvInfo = value;}
}
public static ImageList _imageList1
{
get { return imageList1; }
set { imageList1 = value;}
}
public static ToolStripLabel _lblPageCount
{
get { return lblPageCount; }
set { lblPageCount = value;}
}
public static ToolStripButton _lbl4
{
get { return lbl4; }
set { lbl4 = value;}
}
public static ToolStripButton _lbl6
{
get { return lbl6; }
set { lbl6 = value;}
}
public static ToolStripTextBox _txtCurrentPage
{
get { return txtCurrentPage; }
set { txtCurrentPage = value;}
}
public static BindingNavigator _bdnInfo
{
get { return bdnInfo; }
set { bdnInfo = value;}
}
public static BindingSource _bdsInfo
{
get { return bdsInfo; }
set { bdsInfo = value;}
}
public static ToolStripStatusLabel _StripStatusLabel
{
get { return StripStatusLabel; }
set { StripStatusLabel = value;}
}
//获取数据源
public static void GetSet(DataSet set)
{
objSet = set;
if (objSet!=null && objSet.Tables.Count != 0)
{
if (objSet.Tables[0].Rows.Count != 0)
{
bdnInfo.Enabled = true;
}
else
{
bdnInfo.Enabled = false;
}
int numbers = objSet.Tables[0].Rows.Count;
StripStatusLabel.Visible = true;
StripStatusLabel.Text = "资产数量:" + numbers + "件";
if (numbers > 0)
{
DataTable table = new DataTable();
DataColumn column = new DataColumn();
column.ColumnName = "编号";
column.AutoIncrement = true;
column.AutoIncrementSeed = 1;
column.AutoIncrementStep = 1;
table.Columns.Add(column);
table.Merge(objSet.Tables[0]);
dtInfo = table;
InitDataSet();
}
else
{
DataTable table = new DataTable();
DataColumn column = new DataColumn();
column.ColumnName = "编号";
column.AutoIncrement = true;
column.AutoIncrementSeed = 1;
column.AutoIncrementStep = 1;
table.Columns.Add(column);
table.Merge(objSet.Tables[0]);
dgvInfo.DataSource = table.DefaultView;
dgvInfo.Columns[0].Width = 40;
}
}
else
{
return;
}
}
public static void InitDataSet()
{
pageSize =20; //设置页面行数
nMax = dtInfo.Rows.Count;
pageCount = (nMax / pageSize); //计算出总页数
if ((nMax % pageSize) > 0) pageCount++;
pageCurrent = 1; //当前页数重1开始
nCurrent = 0; //当前记录数重0开始
lbl4.Enabled = false;
if (dtInfo.Rows.Count<=20)
{
lbl6.Enabled = false;
}
else
{
lbl6.Enabled = true;
}
LoadData();
}
public static void LoadData()
{
int nStartPos = 0; //当前页面开始记录行
int nEndPos = 0; //当前页面结束记录行
DataTable dtTemp = dtInfo.Clone(); //克隆DataTable结构框架
if (pageCurrent == pageCount)
nEndPos = nMax;
else
nEndPos = pageSize * pageCurrent;
nStartPos = nCurrent;
lblPageCount.Text = "/ " + pageCount.ToString();
txtCurrentPage.Text = Convert.ToString(pageCurrent);
//重元数据源复制记录行
for (int i = nStartPos; i < nEndPos; i++)
{
dtTemp.ImportRow(dtInfo.Rows[i]);
nCurrent++;
}
bdsInfo.DataSource = dtTemp;
bdnInfo.BindingSource = bdsInfo;
dgvInfo.DataSource = bdsInfo;
dgvInfo.Columns[0].Width = 40;
}
//跳转到指定业
public static void bdnGOClicke(int page)
{
int page1 = Convert.ToInt32(txtCurrentPage.Text);//当前页
if (page <= 0 || page > pageCount)
{
MessageBox.Show("您输入的页码错误,请重新输入!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (page > page1 && page <= pageCount)
{
int number = page - page1;
if (pageCurrent < pageCount)
{
pageCurrent = pageCurrent + number;
if (pageCurrent == pageCount)
{
lbl6.Enabled = false;
lbl4.Enabled = true;
nCurrent = pageSize * (pageCurrent - 1);
}
else
{
lbl6.Enabled = true;
lbl4.Enabled = true;
nCurrent = pageSize * (pageCurrent - 1);
}
LoadData();
}
}
if (0 < page && page < page1)
{
int number = page1 - page;
if (pageCurrent > 0)
{
pageCurrent = pageCurrent - number;
if (pageCurrent == 1)
{
lbl4.Enabled = false;
lbl6.Enabled = true;
nCurrent = pageSize * (pageCurrent - 1);
}
else
{
lbl4.Enabled = true;
lbl6.Enabled = true;
nCurrent = pageSize * (pageCurrent - 1);
}
LoadData();
}
}
}
//上下业跳转
public static void bdnInfoItemClicke(string item)
{
if (item.Equals("上一页"))
{
if (pageCurrent > 0)
{
pageCurrent--;
if (pageCurrent == 1)
{
lbl4.Enabled = false;
lbl6.Enabled = true;
nCurrent = pageSize * (pageCurrent - 1);
}
else
{
lbl4.Enabled = true;
lbl6.Enabled = true;
nCurrent = pageSize * (pageCurrent - 1);
}
LoadData();
}
}
if (item.Equals("下一页"))
{
if (pageCurrent < pageCount)
{
pageCurrent++;
if (pageCurrent == pageCount)
{
lbl6.Enabled = false;
lbl4.Enabled = true;
nCurrent = pageSize * (pageCurrent - 1);
}
else
{
lbl6.Enabled = true;
lbl4.Enabled = true;
nCurrent = pageSize * (pageCurrent - 1);
}
LoadData();
}
}
}
}
- DataGridView分页及分页后页面操作(上页、下页、页面跳转)类
- js分页插件:首页,上页,快退,页码,快进,下页末页,跳转,使用模板,灵活自由
- 分页后页面间跳转的几种方式
- GridView分页后跳转其他页面进行添加,编辑,删除操作后,仍返回到当前页码
- php静态页面及分页
- php静态页面及分页
- 页面分页
- 页面分页
- 页面分页
- 页面分页
- jsp实现分页和页面跳转功能
- javascript实现分页及页面的增加删除修改操作
- java页面分页,收藏中有;页面跳转如下
- asp.net生成静态页面后分页
- php页面分页类通用
- datalist分页(页面部分)
- ajax 分页最终版(2)用户页面操作函数
- html中的a标签用js来实现页面跳转的功能(php分页时做的页面跳转)
- 88
- 开博
- IT人 不要一辈子靠技术生存
- uVision显示成“礦ision”的解决办法
- mysql data too long for column 解决方案
- DataGridView分页及分页后页面操作(上页、下页、页面跳转)类
- POJ1157 LITTLE SHOP OF FLOWERS
- 无题
- 垃圾回收的算法
- 希望可以多从那些网络牛人学些东西,改变自己~
- 我的分页代码
- PDU格式
- JavaScript DOM编程艺术读书笔记及实用方法和函数总结
- UltraEdit中的正则表达式