GridView结合ASPNETPager的分页代码

这两天终于把AspNetPager分页控件学会了,以前写的分页代码很多也很复杂,用上分页控件后,程序简洁了许多。刚开始学习编程的时候我以为代码越多越好,如果一个程序有十几万行代码,那肯定挺牛,而现在我不这么认为了,如果同样实现一个功能,代码能够做到越简洁越好。

花了两天时间,将安国珠宝的分页改成AspNetPager控件分页,不但少了很多行的代码,功能方面也比我原来写的还要强大很多,那为什么自己还想着把以前的分页代码记录下来呢?因为我觉得以前的代码并非一无是处,留下来供以后参考还是可以的。当然,在稍后我会把AspNetPager控件的使用方法和下载地址发布出来,让更多的朋友开发时可以更加快捷。

前台代码

    <asp:GridView ID="GV_News" runat="server" AutoGenerateColumns="False" CellPadding="1" Width="100%" Height="35px" BorderStyle="None" BorderWidth="0px" ShowHeader="False" GridLines="None" PageSize="20" >
      <Columns>
         <asp:TemplateField >
           <ItemTemplate>
             <ul>
               <li>
   <span class="time"><asp:Label ID="lab_date" runat="server" Text='<%# Bind("字段名") %>'></asp:Label></span>
        </li>
      </ul>
           </ItemTemplate>
          </asp:TemplateField>
        </Columns>
       <PagerSettings Visible="False" />
          <EmptyDataTemplate>
           暂时没有任何新闻信息!
          </EmptyDataTemplate>
     </asp:GridView>

<ul>
    <li>共有&nbsp;<asp:Label ID="lab_Totally" runat="server" ForeColor="red"></asp:Label>&nbsp;行记录</li>
    <li>当前第&nbsp;<asp:Label ID="lab_Front" runat="server" ForeColor="red"><%=GV_News.PageIndex + 1%></asp:Label>&nbsp;页/共&nbsp;<asp:Label ID="lab_all" runat="server"><%=GV_News.PageCount%></asp:Label> &nbsp;页&nbsp;&nbsp;20&nbsp;行/页</li>
    <li><asp:LinkButton ID="lkbt_first" runat="server" CommandArgument="first" OnClick="lkbt_first_Click">首 页</asp:LinkButton></li>
    <li><asp:LinkButton ID="lkbt_prev" runat="server" CommandArgument="prev" OnClick="lkbt_prev_Click">上一页</asp:LinkButton></li>
    <li><asp:LinkButton ID="lkbt_next" runat="server" CommandArgument="next" OnClick="lkbt_next_Click">下一页</asp:LinkButton></li>
    <li><asp:LinkButton ID="lkbt_last" runat="server" CommandArgument="last" OnClick="lkbt_last_Click">尾 页</asp:LinkButton></li>
    <li>跳转至第&nbsp;<asp:DropDownList ID="ddl_tz" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddl_tz_SelectedIndexChanged"></asp:DropDownList></li>
    <li>
</ul>

后台代码

    private void BindNews()

    {

           try
            {
                SqlConnection conn =new SqlConnection(ConfigurationManager.ConnectionStrings["DBpath"].ConnectionString);
                conn.Open();
                string sql = "select * from 表名";
                SqlDataAdapter da = new SqlDataAdapter(sql, conn);
                DataSet ds = new DataSet();
                da.Fill(ds, "temp");
                GV_News.DataSource = ds.Tables["news"].DefaultView;
                GV_News.AllowPaging = true;
                GV_News.PageSize = 20;

                int num = ds.Tables[0].Rows.Count;
                lab_Totally.Text = Convert.ToString(num);

                GV_News.DataBind();//绑定datalist

                if (num < 21)
                {//假如记录条数少于21条,所有分页不可用。
                    lkbt_first.Enabled = false;
                    lkbt_prev.Enabled = false;
                    lkbt_next.Enabled = false;
                    lkbt_last.Enabled = false;
                }
                else
                {
                    lkbt_first.Enabled = true;
                    lkbt_prev.Enabled = true;
                    lkbt_next.Enabled = true;
                    lkbt_last.Enabled = true;
                }
                if (GV_News.PageIndex == 0)
                { //假如在首页,设置“首页”和“上一页”按钮不可用
                    lkbt_first.Enabled = false;
                    lkbt_prev.Enabled = false;
                }
                else
                {
                    lkbt_first.Enabled = true;
                    lkbt_prev.Enabled = true;
                }
                if (GV_News.PageIndex == GV_News.PageCount - 1)
                {//假如在末页,设置“下一页”和“尾页”按钮不可用
                    lkbt_next.Enabled = false;
                    lkbt_last.Enabled = false;
                }
                else
                {
                    lkbt_next.Enabled = true;
                    lkbt_last.Enabled = true;
                }
            }
            catch (Exception ex)
            {
                //提示错误信息
            }
            finally
            {
                conn.Close();
            }
        }

    }

        protected void lkbt_first_Click(object sender, EventArgs e)
        {//首页
            switch (((LinkButton)sender).CommandArgument.ToString())
            {
                case "first"://“first”在“lb_sy”按钮的CommandArgument属性中设置
                    GV_News.PageIndex = 0;
                    break;
                case "last":
                    GV_News.PageIndex = GV_News.PageCount - 1;
                    break;
                case "prev":
                    GV_News.PageIndex = GV_News.PageIndex - 1;
                    break;
                case "next":
                    GV_News.PageIndex = GV_News.PageIndex + 1;
                    break;

            }
            BindNews();
        }

        protected void lkbt_prev_Click(object sender, EventArgs e)
        {//上一页
            switch (((LinkButton)sender).CommandArgument.ToString())
            {
                case "first":
                    GV_News.PageIndex = 0;
                    break;
                case "last":
                    GV_News.PageIndex = GV_News.PageCount - 1;
                    break;
                case "prev":
                    GV_News.PageIndex = GV_News.PageIndex - 1;
                    break;
                case "next":
                    GV_News.PageIndex = GV_News.PageIndex + 1;
                    break;

            }
            BindNews();
        }

        protected void lkbt_next_Click(object sender, EventArgs e)
        {//下一页
            switch (((LinkButton)sender).CommandArgument.ToString())
            {
                case "first":
                    GV_News.PageIndex = 0;
                    break;
                case "last":
                    GV_News.PageIndex = GV_News.PageCount - 1;
                    break;
                case "prev":
                    GV_News.PageIndex = GV_News.PageIndex - 1;
                    break;
                case "next":
                    GV_News.PageIndex = GV_News.PageIndex + 1;
                    break;

            }
            BindNews();
        }

        protected void lkbt_last_Click(object sender, EventArgs e)
        {//尾页
            switch (((LinkButton)sender).CommandArgument.ToString())
            {
                case "first":
                    GV_News.PageIndex = 0;
                    break;
                case "last":
                    GV_News.PageIndex = GV_News.PageCount - 1;
                    break;
                case "prev":
                    GV_News.PageIndex = GV_News.PageIndex - 1;
                    break;
                case "next":
                    GV_News.PageIndex = GV_News.PageIndex + 1;
                    break;

            }
            BindNews();
        }

        protected void ddl_tz_SelectedIndexChanged(object sender, EventArgs e)
        {//跳转至第几页
            int CurPage;
            //判断是否有分页的请求;
            ///
            if (ddl_tz.SelectedValue != null)
            {
                CurPage = Convert.ToInt32(ddl_tz.SelectedValue);
            }
            else
            {
                CurPage = 1;
            }
            //设置当前页;
            GV_News.PageIndex = CurPage - 1;
            BindNews();
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值