我定义了一个gridview控件mygridview,想进行分页,用的语句是:
  myGridview.PagerSettings.Mode =PagerMode.NextPrev
为什么编译说无法将类型PagerMode转换成Pagerbutton.
  本来是想用myGridview.PagerStyle.Mode的,但是却没有Mode属性,
为什么?

解决方案 »

  1.   

    要实现GrdView分页的功能。 
    操作如下: 
    1、更改GrdView控件的AllowPaging属性为true。 
    2、更改GrdView控件的PageSize属性为   任意数值(默认为10) 
    3、更改GrdView控件的PageSetting- >Mode为Numeric等(默认为Numeric)该属性为分页样式。 
    GridView属性设置好了,从页面上也能看到分页样式。 现在开始实现分页的功能: 
    1、在 < <asp:GridView   ID=...... >后添加,OnPageIndexChanging= "GridView1_PageIndexChanging " 
    2、在对应的aspx.cs中添加: 
            protected   void   GridView1_PageIndexChanging(object   sender,   GridViewPageEventArgs   e) 
            { 
                    GridView1.PageIndex   =   e.NewPageIndex; 
                    InitPage();   //重新绑定GridView数据的函数 
            } 
    3、 
    GridView1.PageIndex   =   e.NewPageIndex; 
    完了之后再重新绑定一下GridView。
      

  2.   

    对海量数据 采用 SQL语句进行分页。
    sp:
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    -- ================================================
    -- Template generated from Template Explorer using:
    -- Create Procedure (New Menu).SQL
    --
    -- Use the Specify Values for Template Parameters 
    -- command (Ctrl-Shift-M) to fill in the parameter 
    -- values below.
    --
    -- This block of comments will not be included in
    -- the definition of the procedure.
    -- ================================================
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:        <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:    <Description,,>
    -- =============================================
    CREATE PROCEDURE testt 
        -- Add the parameters for the stored procedure here
    @CurrentPage int ,
    @PageSize int AS    -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.    Declare @ID int
        Declare @MoveRecords int
        SET NOCOUNT ON;
        -- Insert statements for procedure here
    Set @MoveRecords=@CurrentPage * @PageSize+1
    Set Rowcount @MoveRecords
    Select @ID=nindex from dbo.summary Order by nindex
    Set Rowcount @PageSizeSelect * From dbo.summary Where nindex>=@ID Order By nindex asc
    Set Rowcount 0
    GO
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////
    demo source
    ///////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////            SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=hardes;Integrated Security=True");
                conn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "testt";            int CurrentPage = 0;
                int PageSize = 10;
                bool flag = true;            while (flag)
                {
                    cmd.Parameters.Clear();
                    SqlParameter para = new SqlParameter("@CurrentPage", SqlDbType.Int);
                    para.Value = CurrentPage;
                    cmd.Parameters.Add(para);
                    para = new SqlParameter("@PageSize", SqlDbType.Int);
                    para.Value = PageSize;
                    cmd.Parameters.Add(para);
                    SqlDataReader reader = cmd.ExecuteReader();
                    if (reader.HasRows)
                    {
                        Console.WriteLine("Page:" + CurrentPage.ToString());
                        while (reader.Read())
                        {
                            Console.WriteLine("\t"+reader["nindex"].ToString());
                        }
                        reader.Close();
                        CurrentPage++;
                    }
                    else
                        flag = false;
                    reader.Dispose();
                    Console.ReadKey();
                }
                
                cmd.Dispose();
                conn.Close();
                conn.Dispose();            Console.ReadKey();
      

  3.   

    最简单的分页会了,但是我用上面的代码是想在分页的基础上加点变化,但是为什么上面的代码有问题呢,还有为什么没有Mode属性呢?