当前位置:编程学习 > C#/ASP.NET >>

连接的数据库无法翻页,请各位大虾帮帮,

--------------------编程问答-------------------- 索引问题  建议用aspnetpager --------------------编程问答-------------------- lz一个分页功能没必要那么复杂。。。。。。。。。

用aspnetpager吧


/// <summary>   
/// 取得总数   
/// </summary>   
/// <returns></returns>   
public string getTotal()   
{   
StringBuilder sb = new StringBuilder();   
sb.Append("select count(*) total from Test");   
DataTable dt = DBHelper.ExecuteDt(sb.ToString());   
return dt.Rows[0][0].ToString();   
}   
/// <summary>   
/// 根据当前页码,每页条数,取得相应数据。   
/// </summary>   
/// <param name="pageNum">每页显示条数</param>   
/// <param name="currentPage">当前页码</param>   
/// <returns></returns>   
public DataTable getPagesData(int pageNum, int currentPage)   
{   
StringBuilder sb = new StringBuilder();   
sb.Append("select top " + pageNum + " * from Test where ");   
sb.Append("ID not in (select top " + pageNum * currentPage + " ID from Test)");   
return DBHelper.ExecuteDt(sb.ToString());   
}   
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="sqlPager_Default" %>   
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
<html xmlns="http://www.w3.org/1999/xhtml" >   
<head runat="server">   
<title>不用存储过程的分页</title>   
</head>   
<body>   
<form id="form1" runat="server">   
<div>   
<asp:gridview ID="gvSql" runat="server">   
</asp:gridview>   
</div>   
<div>   
<webdiyer:aspnetpager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged" PageSize="3">   
</webdiyer:aspnetpager>   
</div>   
</form>   
</body>   
</html>

using System;   
using System.Data;   
using System.Configuration;   
using System.Collections;   
using System.Web;   
using System.Web.Security;   
using System.Web.UI;   
using System.Web.UI.WebControls;   
using System.Web.UI.WebControls.WebParts;   
using System.Web.UI.HtmlControls;   
public partial class sqlPager_Default : System.Web.UI.Page   
{   
BLL.Test test = new BLL.Test();   
protected void Page_Load(object sender, EventArgs e)   
{   
if (!IsPostBack)   
{   
AspNetPager1.RecordCount = Convert.ToInt32(test.getTotal());//此属性保存总记录数..   
Bind();   
}   
}   
private void Bind()   
{   
this.gvSql.DataSource = test.getPagesData(Convert.ToInt32(AspNetPager1.PageSize), AspNetPager1.CurrentPageIndex - 1);   
this.gvSql.DataBind();   
}   
protected void AspNetPager1_PageChanged(object sender, EventArgs e)   
{   
Bind();   
}   
}

--------------------编程问答-------------------- datagrid本身就有自带分页功能的啊,出现这样的错误,一般都是你的分页逻辑上出了问题,你仔细调试下应该就能找出问题了 --------------------编程问答-------------------- 眼花了... --------------------编程问答-------------------- 为什么要这样搞额。。用aspbagedatasoure --------------------编程问答-------------------- 控件自带翻页功能,或是手写代码记录翻页的页数咯。把代码写在控件触发事件里哦。 --------------------编程问答-------------------- 帮顶啊 曾经也遇到过这种情况啊 --------------------编程问答--------------------   自己写一个分页控件!!! --------------------编程问答-------------------- 加入判断 if (myGrid.CurrentPageIndex > 0) --------------------编程问答-------------------- 是的,要加个判断,你的那个--   当然超出索引界限啊

建议哈  LZ写代码能规范点不   看得眼花! --------------------编程问答-------------------- 断点,然后看你的页数设置是不是有问题 --------------------编程问答-------------------- LZ 分页 有点复杂哦!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,