2.6 分页

在“设计”模式中,右键单击GridView,弹出“属性”菜单,AllowSorting默认为不支持分页,修改属性值为True。默认1页10条,如果要修改每页条数,修改PageSize的属性值即可,在aspx代码中是PageSize="5",如图2-13所示。同时后台取20条数据,便于演示分页,select top 20,效果如图2-14所示。

图2-13 在“属性”菜单中设置分页

图2-14 分页效果

刷新浏览器后GridView的确为我们分页了,这时单击第2页却报错:GridView“GridView1”激发了未处理的事件“PageIndexChanging”,注意这个报错提示,如图2-15所示。

图2-15 分页报错

这个时候,我们在GridView“属性”菜单上切换到事件,单击黄色的“闪电”图标,如图2-16所示。

图2-16 在“属性”菜单中选择事件

双击“PageIndexChanging”,系统自动切换到后台,并添加如下空代码段。

        protectedvoid GridView1_PageIndexChanging(object sender, GridViewPageEventArgs
    e)
              {
              }

我们加上分页事件的代码,分页过后要重新调用Bind()方法,后台全部代码如下:

        SqlConnection sqlcon;
        string strCon=ConfigurationManager.ConnectionStrings[ "SQLCONN" ].ToString();
        protectedvoid Page_Load(object sender, EventArgs e)
              {
        if (!IsPostBack)
                    {
                      bind();
                    }
              }
        //绑定
        publicvoid bind()
              {
        string sqlstr="select top 20 员工编号,身份证号码,姓名,性别,地址  from 章立民工
    作室";
                    sqlcon=newSqlConnection(strCon);
        SqlDataAdapter myda=newSqlDataAdapter(sqlstr, sqlcon);
        DataSet myds=newDataSet();
                    sqlcon.Open();
                    myda.Fill(myds, "table");
                    GridView1.DataSource=myds;
                    GridView1.DataBind();
                    sqlcon.Close();
              }
        protectedvoid GridView1_PageIndexChanging(object sender, GridViewPageEventArgs
    e)
              {
                    GridView1.PageIndex=e.NewPageIndex;
                    bind();
              }

这个时候再次刷新页面,单击第2页、第N页再也不会报错了,如图2-17所示。

图2-17 分页正常