当前位置: 首页 > 前端技术 > 前端框架

实例讲解GridView分页实现

发布日期:1970-07-05 04:40:20 分类:前端技术 阅读()来源:网络收集

好东西要多分享:

做网站就上魔艺客

网格视图(grid view)或者叫表控件(spreadsheet controls),是一类图形控件用来网格方式显示数据。ASP.NET中有着许多的控件,其中典型代表就是GridView控件。GridView控件可以帮助我们.NET中实现许多功能,本文重点探讨GridView分页实现。

GridView分页实现第一需要将数据库中的数据导入到GridView中,代码如下:

先引入命名空间:

using System.Data.SqlClient;

using System.Data;

接着是主体代码:

protected void Page_Load(object sender, EventArgs e)

        {

            string strsql = "select * from StudentInfo";

            string strcon = "server=xxx;database=StudentManage;uid=sa;pwd=123456";

            SqlConnection sqlcon = new SqlConnection(strcon);

            SqlDataAdapter myda = new SqlDataAdapter(strsql, sqlcon);

            DataSet myds = new DataSet();

            sqlcon.Open();

            myda.Fill(myds, "tb_student");

            GridView1.DataSource = myds;

            GridView1.DataKeyNames = new string[] { "StuNo" };

            GridView1.DataBind();

        }

然后是设置GridView控件的一些属性:

1)是否允许分页

         Gridview的AllowPaging属性设置为true。

2)每页显示的条数

         GrdView的PageSize属性(默认为10)

3)分页样式

         GrdView控件的PageSetting->Mode为Numeric等(默认为Numeric)

接下来具体说如何设置GridView的AllowingPage属性为True,下面是分页代码:

 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

             {

                 GridView1.PageIndex = e.NewPageIndex;

                 GridView1.DataBind();

             }

 

然后修改网页主界面的源代码为:

 

        onpageindexchanging="GridView1_PageIndexChanging" PageSize ="3">

    

上面的代码有些零散,下面给出一个通用显示分页的模板:

 

                当前第:

                //((GridView)Container.NamingContainer)就是为了得到当前的控件

                

                /共:

                //得到分页页面的总数

                

                

                 //如果该分页是首分页,那么该连接就不会显示了.同时对应了自带识别的命令参数CommandArgument

                

                    Visible='<%#((GridView)Container.NamingContainer).PageIndex != 0 %>'>首页

                

                    CommandName="Page" Visible='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'>上一页

               //如果该分页是尾页,那么该连接就不会显示了

                

                    Visible='<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>'>下一页

                

                    Visible='<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>'>尾页

                转到第

                页

                //这里将CommandArgument即使点击该按钮e.newIndex 值为3

                

                    CommandName="Page" Text="GO" />

            

 

然后是对应事件代码:

 protected void gvwDesignationName_PageIndexChanging(object sender, GridViewPageEventArgs e)

    {

        // 得到该控件

        GridView theGrid = sender as GridView;

        int newPageIndex = 0;

        if (e.NewPageIndex==-3)

        {

            //点击了Go按钮

            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;

        

         //重新绑定

        bingDesignatioonName();

    }

这样就基本完成了GridView分页的操作,分页的效果图就会呈现在你的电脑屏幕上。

GridView控件只是.NET众多控件中的一个,想要学习更多的控件和功能实现可以关注本站的java培训课程,名师讲解助你学有所成!


声明: 文章内容及图片部分全部摘自网络,在此分享供读者参考和借鉴,不代表酷雷的观点。文章、图片等内容如涉嫌侵权,请联系我们删除,谢谢!带有原创标签的属于酷雷原创文章,未经允许不得转载!

标签:

我要说一说

加载中~
您好,很高兴为您服务!
广告合作
投诉建议
联系站长

客服热线:15821432298

扫码加好友,优惠等你来!