winform 分页 分类: WinForm 2014-05-16 15:30 257人阅读 评论(0) 收藏
说明:(1)如果对分页的感兴趣的话,可以看一下我传的存储过程(“SQL 存储过程 分页”)
(2)分页,第一页、上一页,下一页、最后一页只调用点击(click)事件即可;如果想要实用性的好的话,txtNowPage,需 要调用3个事件,点击事件(click)、离开事件(leave)、目标按下事件(keypress)。
效果图:
代码实现如下:
public void DataBind()
{
#region 数据绑定
GetWhere();
object[] page = new object[8];
page[0] = "表或视图";
page[1] = " 字段名称 ";
page[2] = pagesize;//没有多少条记录
page[3] = nowpage;//当前页码
page[4] = strWhere;//查询条件
page[5] = "表的主键";
page[6] = sumpage;//总页数
page[7] = sizecount;//总条数
DataSet dset = new DataSet();
dset = DataAccess.GetDataSet("P_Public_Paging", true, page);
dgvMainTop.DataSource = dset.Tables[0];
sumpage = Convert.ToInt32(dset.Tables[1].Rows[0][0].ToString());
sizecount = Convert.ToInt32(dset.Tables[1].Rows[0][1].ToString());
lblSumCount.Text = "(共" + sizecount + "条记录)";
txtNowPage.Text = nowpage + "/" + sumpage;
PageState(); //分页状态
}
private void PageState()
{
#region 分页按钮状态
if (sumpage <= 1)
{
btnUp.Enabled = false;
btnNext.Enabled = false;
btnFirst.Enabled = false;
btnEnd.Enabled = false;
}
else
{
if (nowpage == 1)
{
btnFirst.Enabled = false;
btnEnd.Enabled = true;
btnUp.Enabled = false;
btnNext.Enabled = true;
}
else if (nowpage == sumpage)
{
btnUp.Enabled = true;
btnNext.Enabled = false;
btnFirst.Enabled = true;
btnEnd.Enabled = false;
}
else
{
btnUp.Enabled = true;
btnNext.Enabled = true;
btnFirst.Enabled = true;
btnEnd.Enabled = true;
}
}
#endregion
}
private void btnFirst_Click(object sender, EventArgs e)
{
#region 第一页按钮事件
DataBind();
#endregion
}
private void btnUp_Click(object sender, EventArgs e)
{
#region 上一页按钮事件
nowpage--;
DataBind();
#endregion
}
private void btnNext_Click(object sender, EventArgs e)
{
#region 下一页按钮事件
nowpage++;
DataBind();
#endregion
}
private void btnEnd_Click(object sender, EventArgs e)
{
#region 最后一页按钮事件
nowpage = sumpage;
DataBind();
#endregion
}
private void txtNowPage_KeyPress(object sender, KeyPressEventArgs e)
{
#region 页码输入限制,允许输入0-9数字 回退键 回车键
e.Handled = true;
if (e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyChar == 8)
{
e.Handled = false;
}
if (e.KeyChar == 13)
{
btnFind.Focus();
}
#endregion
}
private void txtNowPage_Leave(object sender, EventArgs e)
{
#region 设置当前页 最大为总页数 最小1
if (txtNowPage.Text == string.Empty)
{
nowpage = 1;
txtNowPage.Text = nowpage + "/" + sumpage;
}
string strpage = txtNowPage.Text.Trim();
string[] array = strpage.Split('/');
txtNowPage.Text = array[0];
int page = int.Parse(array[0]);
if (page <= 1)
{
nowpage = 1;
txtNowPage.Text = nowpage + "/" + sumpage;
}
if (page > sumpage)
{
nowpage = sumpage;
txtNowPage.Text = nowpage + "/" + sumpage;
}
if (page > 1 && page <= sumpage)
{
nowpage = page;
}
DataBind();
#endregion
}
private void txtNowPage_Click(object sender, EventArgs e)
{
#region 单击页码文本框
string strpage = txtNowPage.Text.Trim();
string[] array = strpage.Split('/');
txtNowPage.Text = array[0];
txtNowPage.Focus();
txtNowPage.SelectAll();
#endregion
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
winform 分页 分类: WinForm 2014-05-16 15:30 257人阅读 评论(0) 收藏的更多相关文章
- SQL 存储过程 分页 分类: SQL Server 2014-05-16 15:11 449人阅读 评论(0) 收藏
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Au ...
- PIE(二分) 分类: 二分查找 2015-06-07 15:46 9人阅读 评论(0) 收藏
Pie Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissio ...
- Find The Multiple 分类: 搜索 POJ 2015-08-09 15:19 3人阅读 评论(0) 收藏
Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21851 Accepted: 8984 Sp ...
- 周赛-DZY Loves Chessboard 分类: 比赛 搜索 2015-08-08 15:48 4人阅读 评论(0) 收藏
DZY Loves Chessboard time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Ultra-QuickSort 分类: POJ 排序 2015-08-03 15:39 2人阅读 评论(0) 收藏
Ultra-QuickSort Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 48111 Accepted: 17549 ...
- Drainage Ditches 分类: POJ 图论 2015-07-29 15:01 7人阅读 评论(0) 收藏
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 62016 Accepted: 23808 De ...
- max_flow(Dinic) 分类: ACM TYPE 2014-09-02 15:42 94人阅读 评论(0) 收藏
#include <cstdio> #include <iostream> #include <cstring> #include<queue> #in ...
- SQL 分组 加列 加自编号 自编号限定 分类: SQL Server 2014-11-25 15:41 283人阅读 评论(0) 收藏
说明: (1)日期以年月形式显示:convert(varchar(7),字段名,120) , (2)加一列 (3)自编号: row_number() over(order by 字段名 desc) a ...
- SQL 按月统计(两种方式) 分类: SQL Server 2014-08-04 15:36 154人阅读 评论(0) 收藏
(1)Convert 函数 select Convert ( VARCHAR(7),ComeDate,120) as Date ,Count(In_code) as 单数,Sum(SumTrueNum ...
随机推荐
- [设计模式]解释器(Interpreter)之大胆向MM示爱吧
为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 “我刚写了个小程序,需要你来参与下.”我把MM叫到我的电脑旁,“来把下面这条命令打进去,这是个练习打(Pian)符(ni)号(de)的 ...
- header("Location:login.php")
header("Location:login.php")应该注意的几个问题 header("Location:")作为php的转向语句.其实在使用中,他有几点 ...
- demo_03HTML5中的动画效果
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 使用APT减少MVP的冗余代码
前言 不知道从何时起,移动端开发都开始采用MVP.我们在认识到MVP有点的时候,也不妨会察觉到它其实也有很多恼人的地方,比如,我们针对每种状态渲染不同的视图: private void renderI ...
- PHP实现简易的模板引擎
PHP实现简易的模板引擎 1.MVC简介 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式(详情自己百度): 1. Mode ...
- windows下配置wnmp
最近尝试windows下配置nginx+php+mysql,在这里总结一下. 1.下载windows版本的nginx,官网下载地址:http://nginx.org/en/download.htm, ...
- mysql的查询缓存模式介绍
mysql的查询缓存 查询是数据库技术中最常用的操作.查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的 SQL语句后, 执行这条SQL语句,然后将查询到的结 ...
- 请大神帮忙解决 jquery 控制 li 标签问题
<li class="active"><a href="#1" data-toggle="tab">日志详细情况&l ...
- iOS:等待控件
定义: @interface ViewController () { UIActivityIndicatorView *testActivityIndicator; } 实例化,开始旋转: -(voi ...
- matlab函数之bsxfun
bsxfun(fun,A,B) 偶然间发现了这个函数,强大得不得了呀,它的作用是:对两个矩阵A和B之间的每一个元素进行指定的计算(函数fun指定):并且具有自动扩维的作用 例如,A是一个4*3的矩阵, ...