注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

汇总技巧

你快乐我快乐.... 汇集各类技巧,传播技巧,让我们共同熟练运用技巧..

 
 
 

日志

 
 

关于msdn上面的《Web窗体页创建分页的数据访问》的改进  

2011-05-31 23:43:27|  分类: ◆ASP技巧 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

前段时间做了第一个ASP.NET项目,很简单的。在DataGrid分页的时候遇到小问题,就参考msdn的例子做了一个。实际过程中发现似乎有点问题,改进了一下:
链接:ms-help://MS.MSDNQTR.2003FEB.2052/vbcon/html/vbwlkwalkthroughdisplayingdatainlistboxesonwebformspage.htm
说明:该文章使用了两个sql语句,目的是向前翻页的时候和向后翻页的时候分别使用不同的语句。改进以后只用一条语句就可以。我在项目里面使用的是存储过程:CREATE PROCEDURE selectAllUser@Idint)ASselect top 15 Id,UserName,IDcard,Sex,Birthday,MailAddr,GetscholarTimefrom UserInfowhere Id@IdGO
&nbsp关键代码如下:/// /// 从数据库读取从userID开始的15条记录并显示/// /// private void showAllUser(int userID){ManageDB managedb = new ManageDB();int count = managedb.getUserCount();//这个方法获取总记录数if(count == -1){Response.Redirect(error.aspx,true);return;}count = count/this.gridUser.PageSize;SqlDataReader reader = managedb.getAllUser(userID);this.gridUser.DataSource = reader;this.gridUser.DataBind();reader.Close();ViewState[CurrentPage] = CurrentPage;ViewState[CurrentPage.ToString()] = this.gridUser.Items[0].Cells[0].Text;if(CurrentPage =0){this.btnPrevious.Enabled = false;}if(CurrentPage = count){this.btnNext.Enabled = false;}}
下一页按钮点击事件:private void btnNext_Click(object sender, System.EventArgs e){this.btnPrevious.Enabled = true;CurrentPage = (int)(ViewState[CurrentPage]);CurrentPage ++;//下面的代码有个+1操作,这个是必须的,这样保证了取得的记录没有重复的。int lastID = Convert.ToInt32(this.gridUser.Items[this.gridUser.PageSize-1].Cells[0].Text) + 1;this.showAllUser(lastID);}
上一页按钮点击事件private void btnPrevious_Click(object sender, System.EventArgs e){this.btnNext.Enabled = true;CurrentPage = Convert.ToInt32(ViewState[CurrentPage]);CurrentPage--;if (CurrentPage = 0){int firstid;firstid = Convert.ToInt32(ViewState[(CurrentPage).ToString()]);this.showAllUser(firstid);}}
最后是page load事件里面添加:
if(!Page.IsPostBack){CurrentPage = 0;this.showAllUser(0);}
这样就对一个简单的分页改进了一下。当然我们还可以显示出总页数,当前页数。但是这种分页功能不强,不能做到直接跳转到第几页。但是这个分页效率可以说是相当高的。
整个源代码可以这里下载,注意数据库是sql server2000。另外我的Blog最近将推出.net书籍以及源代码下载,请关注!

  评论这张
 
阅读(75)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017