`

DataGridView分页及分页后页面操作(上页、下页、页面跳转)类

    博客分类:
  • C#
阅读更多

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();

}

}

}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics