在Visual Studio(VS)中,开发Web应用程序时,经常需要处理数据展示,特别是大量数据时,分页功能显得尤为重要。本篇文章将详细讲解如何利用VS自带的Gridview控件实现分页功能,以及在对Gridview中的记录进行操作后如何返回到用户先前所在的页面。 我们来看Gridview分页的实现。VS提供了自动分页的特性,可以在设计界面中直接开启。在Gridview的属性设置中,找到“AllowPaging”选项并将其设置为True,这样就启用了分页功能。接下来,需要为Gridview添加分页事件处理程序。这通常通过在代码-behind文件中双击“PageIndexChanging”事件来完成。 ```csharp protected void gvAttend_PageIndexChanging(object sender, GridViewPageEventArgs e){ gvAttend.PageIndex = e.NewPageIndex; Dbing(); } ``` 这里,`Dbing()`方法负责重新绑定数据到Gridview。在该方法中,通常会从数据库获取数据并根据新的页面索引调整数据源,然后调用`DataBind()`方法更新Gridview。 ```csharp public void Dbing() { int temp = 0; string cardid = CardId; DataSet ds = _AttendInfoBLL.GetAttendInfo(cardid); if (ds != null && ds.Tables[0].Rows.Count > 0) { //...其他逻辑... gvAttend.DataSource = ds; gvAttend.DataBind(); } } ``` 在这个例子中,`_AttendInfoBLL.GetAttendInfo(cardid)`是获取考勤信息的方法,`CardId`可能是一个用户标识。`Dbing()`方法还计算迟到的次数并存储在Session中。 然而,如果在Gridview的第二页或其他页面点击“填写原因”按钮,可能会遇到下标越界的问题。这是因为直接访问行数据时,没有考虑到当前页面的索引。为解决这个问题,我们需要在处理RowCommand事件时计算正确的行索引。 ```csharp protected void gvAttend_RowCommand(object sender, GridViewCommandEventArgs e){ if (e.CommandName == "btnFill") { int iPageIndex = gvAttend.PageIndex; int iPageSize = gvAttend.PageSize; int iIndex = Convert.ToInt32(e.CommandArgument) - iPageIndex * iPageSize; //...其他逻辑... } } ``` 在这里,`iPageIndex`是当前页的索引,`iPageSize`是每页显示的记录数,`iIndex`是相对于当前页面的行索引。通过这种方式,可以正确获取选定行的数据。 我们需要处理一个常见的问题:用户填写迟到原因后返回,如何让他们回到之前查看的页面?一种方法是在跳转到“FillReason.aspx”页面时,将当前页索引作为参数传递: ```csharp String URLString = String.Format("FillReason.aspx?WorkDate={0}&CardId={1}&AttendTime={2}&LateReason={3}&iPageIndex={4}", WorkDate, cardid, AttendTime, LateReason, iPageIndex); Response.Redirect(URLString); ``` 在“FillReason.aspx”页面处理完业务逻辑后,可以使用传递过来的`iPageIndex`参数,将用户重定向回他们之前所在的Gridview页面。 总结来说,VS自带的Gridview控件提供了方便的分页功能,只需设置允许分页和添加适当的事件处理程序即可实现。同时,通过在操作记录后保存和传递当前页索引,我们可以确保用户在完成操作后能返回到他们离开的地方,提供更好的用户体验。在实际开发中,可以根据项目需求进一步优化这些步骤,例如添加错误处理、优化数据检索等。
- xzhao1214002013-03-11其实只是一个文档,并没有给出代码,不实用
- 扬眉剑出鞘Gu2013-01-09当学习资料 还是不错的!
- 小猪爬树2015-02-26资料还行,没有实际的代码。
- chenfeifei19862013-08-07资料还不错,谢谢。好用
- 粉丝: 6
- 资源: 12
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助