Discuz!NT
欢迎 游客 , 注册 | 登录 | 会员 | 界面 | 简洁版本 | 在线 | 帮助
商都网教育宝典宝库

发表新主题 回复该主题
本主题被查看852次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第   上一主题   下一主题
标题: 关于分页技术?
张小峰
超级版主
UID: 14
来自:
精华: 4
积分: 313
帖子: 285
注册: 2007-8-23 10:27:00
状态: 离线
威望: 8.00
金钱: 75.55 元
只看楼主 2007-08-23 10:59
关于分页技术?
我是一个入门者,最近老师流了一个练习是作留言板,把留言信息分页显示出来?我上网搜索了好久,都没有我能看懂的(可能比较笨),我只是复制老师的一段代码如下:

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;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    int nRecCount;//定义总记录数
    int pageSize=3;//定义每页显示记录数
    //分页功能没有实现
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Bind();
            if(Request.UrlReferrer!=null)
            {
                ViewState["PageIndex"] = Request.UrlReferrer.ToString();
            }
        }
       
    }
    public int PageIndex
    {
        get
        {
            int pageIndex = 0;
            Object obj = ViewState["PageIndex"];
            if (obj == null)
                return pageIndex;
            int.TryParse(obj.ToString(), out pageIndex);
            return pageIndex;
        }
        set
        {
            ViewState["PageIndex"] = value;
        }
    }


    ////定义下一页,遇到最后一页停止
    protected void lbNext_Click(object sender, EventArgs e)
    {
        int count = (int)Application["nRecCount"];
        while (PageIndex + 1 <= count / pageSize)
        {
            PageIndex++;
           
        }
        Bind();
        return;
    }
    ////定义上一页,到首页后停止
    protected void lbPre_Click(object sender, EventArgs e)
    {
        if (PageIndex <= 0)
        {
            PageIndex = 0;
            return;
        }
        PageIndex--;
        Bind();
    }

    protected void rptMessage_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
    }
    public void Bind()
    {
        //SqlConnection conn = new SqlConnection(@"data source=(local)\sqlexpress;database=testdb;Integrated Security=SSPI");
        string connection = ConfigurationManager.ConnectionStrings["test"].ConnectionString;
        SqlConnection conn = new SqlConnection(connection);
        string sqlStr = "select * from guestbook order by gdatetime desc";
        SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlStr, conn);
        DataSet dataSet = new DataSet();
        dataAdapter.Fill(dataSet);
        DataTable dataTable = dataSet.Tables[0];
        nRecCount = dataTable.Rows.Count;//获得总记录数
        Application["nRecCount"] = nRecCount;
        rptMessage.DataSource = dataTable;
        rptMessage.DataBind();
       
    }
}

不知道什么地方需要改动?另外有没有朋友帮忙解释一下分页原理?老师的代码(我改了一些)我不懂.非常感谢
#1  
发表新主题 回复该主题
本主题被查看852次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第







现在的时间是 2008-07-05 05:47:14

版权所有 商都网教育宝典
         Powered by Discuz!NT 1.0.6666    Copyright © 2001-2008 Comsenz Inc.
Processed in 0.064 seconds