ASP.NET GridView利用PagerTemplate自定义分页

实现的效果:








一、将PagerTemplate属性标签放到GridView控件中,具体代码如下:

 

                                
                                
                                
                                
                                /
                                
                                
                                
                              <%--  
                                
                                 --%>
                                条记录
                                首页<%--Enabled属性可以改成Visible--%>
                                |
                                上一页
                                |
                                下一页
                                |
                                尾页
                                跳转到第
                                页
                                <%--这里将CommandArgument即使点击该按钮e.newIndex 值为3--%>
                                
                                
                            
二、编写后端代码:

  protected void EmployeeDirectory_OnPageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            // EmployeeGrid.PageIndex = e.NewPageIndex;
            // InitialGridView_EmployeeDirectory();
            // 得到该控件
            GridView theGrid = sender as GridView;
            int newPageIndex = 0;
            if (e.NewPageIndex == -3)
            {
                //点击跳转按钮
                TextBox txtNewPageIndex = null;

                //GridView较DataGrid提供了更多的API,获取分页块可以使用BottomPagerRow 或者TopPagerRow,当然还增加了HeaderRow和FooterRow
                GridViewRow pagerRow = theGrid.BottomPagerRow;

                if (pagerRow != null)
                {
                    //得到text控件
                    txtNewPageIndex = pagerRow.FindControl("txtNewPageIndex") as TextBox;
                }
                if (txtNewPageIndex != null)
                {
                    //得到索引
                    newPageIndex = int.Parse(txtNewPageIndex.Text) - 1;
                }
            }
            else
            {
                //点击了其他的按钮
                newPageIndex = e.NewPageIndex;
            }
            //防止新索引溢出
            newPageIndex = newPageIndex < 0 ? 0 : newPageIndex;
            newPageIndex = newPageIndex >= theGrid.PageCount ? theGrid.PageCount - 1 : newPageIndex;
            //得到新的值
            theGrid.PageIndex = newPageIndex;
            //重新绑定
            BindDataGridView_EmployeeDirectory();

        }

三、从数据库中读取数据

  protected void BindDataGridView_EmployeeDirectory()
        {
            string TxtEmployeeName = Txt_EmployeeName.Text.Trim();
            string DDL_Frame2 = DropDownList_Frame2.SelectedValue;
            string ddlBranch = ddl_Frame.SelectedValue;

                string sql = @"SELECT * FROM BI_Employee where (EmployeeID like '%" + TxtEmployeeName + "%' or ChineseName like '%"
                       + TxtEmployeeName + "%' or EnglishName like '%" + TxtEmployeeName + "%' or MobilePhone like '%"
                    + TxtEmployeeName + "%') and ( Frame2 like  '%" + DDL_Frame2 + "%')   and (Frame1 like '%"
                    + ddlBranch + "%') and  status='是' order by FrameGroup";
                DataSet ViewEmployeeDirectory = getDataSet(CONN_STRING, CommandType.Text, sql, null);
                EmployeeGrid.AllowPaging = true;
                EmployeeGrid.PageSize = 30;
                EmployeeGrid.DataSource = ViewEmployeeDirectory;
                EmployeeGrid.DataBind();
        }


当页面位于首页时,可以将Enabled属性为Visible.可以隐藏首页和上一页或者尾页和下一页,例如:

首页<%--Enabled属性可以改成Visible--%>

效果如下:



             

你可能感兴趣的:(C#,ASP.NET)