none
求助:三层架构dataset和GridView分页功能 RRS feed

  • 问题

  • 1.DAL

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;

    namespace DAL
    {
        public class userDAL
        {
            private static string con=ConfigurationManager.AppSettings["sqlcon"];

            public DataSet getDsUserDAL() {

                SqlConnection CONN = new SqlConnection(con);
                CONN.Open();
                string sql = "select * from users_tb";
              
                SqlDataAdapter sda = new SqlDataAdapter(sql,CONN);
                DataSet ds = new DataSet();
                sda.Fill(ds, "users_tb");
                return ds;

            }
           
        }
    }

     

    2.BLL

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using DAL;

    namespace BLL
    {
        public class userBLL
        {
            DAL.userDAL da = new userDAL();
            public DataSet getUserBLL() {
                return da.getDsUserDAL();

            }
        }
    }

     

    3.ui

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using BLL;

    namespace WebApplication1
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                BLL.userBLL UB = new userBLL();
                this.GridView1.DataSource = UB.getUserBLL();
                this.GridView1.DataBind();

            }

            protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
            {
                BLL.userBLL UB = new userBLL();
                this.GridView1.DataSource = UB.getUserBLL();
                this.GridView1.DataBind();
            }
        }
    }

    在UI的控件属性AllowPaging 设置为ture

                          PageSize设置为2;

     

    虽然输出了分页,但是第一页可以显示,第二页开始老是自动跳转到第一页


    you are welcome
    2011年2月19日 5:35

答案

  • 你好

    或者你可以嘗試加這一句

     this.GridView1.PageIndex = e.NewPageIndex; 

     protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

            {

                BLL.userBLL UB = new userBLL();

    this.GridView1.PageIndex = e.NewPageIndex; 

                this.GridView1.DataSource = UB.getUserBLL();

                this.GridView1.DataBind();

            }

    Please correct me if my concept is wrong


    Chi
    2011年2月19日 20:58
    版主
  • 你说的话是没错误的.问题要怎么修改才好了.

     

    希望您可以指点下.多谢


    you are welcome
    2011年2月20日 5:33

全部回复

  • 您好,请注释掉方法,GridView1_PageIndexChanging

    按照这个实现,就每次换页时,重新绑定数据,所以总是回到第一页。

    2011年2月19日 14:30
    版主
  • 你好

    或者你可以嘗試加這一句

     this.GridView1.PageIndex = e.NewPageIndex; 

     protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

            {

                BLL.userBLL UB = new userBLL();

    this.GridView1.PageIndex = e.NewPageIndex; 

                this.GridView1.DataSource = UB.getUserBLL();

                this.GridView1.DataBind();

            }

    Please correct me if my concept is wrong


    Chi
    2011年2月19日 20:58
    版主
  •  this.GridView1.PageIndex = e.NewPageIndex;

    在不到这个 e.NewPageIndex方式.   如果复制过去就会提出错误

    System.Web.HttpException: GridView“GridView1”激发了未处理的事件“PageIndexChanging


    you are welcome
    2011年2月20日 5:30
  • 你说的话是没错误的.问题要怎么修改才好了.

     

    希望您可以指点下.多谢


    you are welcome
    2011年2月20日 5:33
  • 我重新删除掉之前的事件,现在可以实现分页功能了多谢!
    you are welcome
    2011年2月20日 6:11
  • 你说的话是没错误的.问题要怎么修改才好了.

     

    希望您可以指点下.多谢


    you are welcome


    晕菜,难道我说的不够清楚?

    注释掉方法,GridView1_PageIndexChanging 就是

    //protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
           // {
             //   BLL.userBLL UB = new userBLL();
             //   this.GridView1.DataSource = UB.getUserBLL();
              //  this.GridView1.DataBind();
            //}

    还有第二种注释方法? 我的解释有歧义?

    2011年2月20日 7:11
    版主