连接的数据库无法翻页,请各位大虾帮帮,
--------------------编程问答-------------------- 索引问题 建议用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