winform中DataGridView实现分页功能
在winform的设计中,要实现对DataGridView控件的分页功能,需要两个控件:BindingSource、BindingNavigator,根据需求可对BindingNavigator进行自由的扩展,下图的示例则是根据一般需求对分页功能的实现。红色区域是对BindingNavigator控件扩展后的效果。
具体实现过程 :
//窗体构造方法中定义分页所需变量:
int pageSize = 0; //每页显示行数
int nMax = 0; //总记录数
int pageCount = 0; //页数=总记录数/每页显示行数
int pageCurrent = 0; //当前页号
int nCurrent = 0; //当前记录行
DataTable dtInfo = new DataTable(); //存取查询数据结果
//分页功能实现
public void InitDataSet()
{
//判断每页显示记录数是否为空,在初始话窗体时为真
if (txtRecordNumOfPage.Text.Trim() == "")
{
try
{
//pageSize = Convert.ToInt16(ConfigurationManager.AppSettings["PageSize"]); //设置页面行数
//读取配置文件中设置的每页显示条数
string szConfigFileName = Application.ExecutablePath + ".config";
XmlDocument doc = new XmlDocument();
doc.Load(szConfigFileName);
XmlNode root = doc.SelectSingleNode("configuration");
XmlNode node = root.SelectSingleNode("appSettings/add[@key=‘PageSize‘]");
XmlElement el = node as XmlElement;
pageSize = Convert.ToUInt16(el.GetAttribute("value"));
}
catch
{
}
if (pageSize == 0)
{
pageSize = 20; //如果读取配置文件失败,则默认将每页显示条数设置为20
}
txtRecordNumOfPage.Text = pageSize.ToString(); //界面显示的“每页记录数”赋值
}
else
{
//读取界面设置的每页显示条数
pageSize = Convert.ToUInt16(txtRecordNumOfPage.Text.Trim());
}
//总记录数赋值
nMax = dtInfo.Rows.Count;
pageCount = (nMax / pageSize); //采用整除计算页数
//判断整除后是否有余数,有则对页数进行+1
if ((nMax % pageSize) > 0) pageCount++;
pageCurrent = 1; //当前页数从1开始
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/63630.html