• 使用DataList 分页方法


    什么是DataList我想应该不需要解释了,接下来分享本人在项目里使用到的通过DataList进行分页展示方法。

    首先在ASPX页面添加一个DataList(后面都简称DL)控件,示例代码如下:

    1  <asp:DataList ID="DL_BadReason" runat="server" Width="100%" 
    2 ////////////////////中间嵌套你需要展示出来的数据和方法的ID////////
    3  </asp:DataList>

    此例中展示的风格是通过下拉列表来进行分页跳转(当然,这样做是无法和高大上的Ajax来进行分页来的给力,后面有时间虾哥将会再写一个AJAX分页DEMO分享给码友们

    在前台页面再添加一个DropList控件来绑定页数,以便进行分页跳转,示例代码如下:

    1  <asp:DropDownList ID="YourName" runat="server" AutoPostBack="true" OnSelectedIndexChanged="YourName">
    2  </asp:DropDownList>

    前台搞定!接下来就是后台代码实现了,代码逻辑很简单,这里就不多注释太多了。示例代码如下:

     1         if (dtBadReason.Rows.Count > 0) //这里的dtBadReason是你从数据库查询出来的数据源
     2         {
     3             try
     4             {
     5                //DL:DataList
     6 
     7                 this.DL.DataSource = dvBadReason;
     8                 DL.DataBind();
     9                 DL.HorizontalAlign = HorizontalAlign.Center;
    10 
    11                 //使用PageDataSource
    12                 PagedDataSource PgB = new PagedDataSource();
    13                 PgB.DataSource = dvBadReason;
    14                 //设定条数
    15                 PgB.PageSize = 15;
    16                 PgB.AllowPaging = true;
    17 
    18                 //分页设定
    19                 int CurrentPage = Get_CurrentPage();
    20                 PgB.CurrentPageIndex = CurrentPage - 1;
    21                 lbPage.Text = String.Format("{2}&nbsp;{0}&nbsp;{4}&nbsp;,&nbsp;{3}&nbsp;{1}&nbsp;{4}"
    22                                         , CurrentPage.ToString()
    23                                         , PgB.PageCount.ToString()
    24                                         , ""
    25                                         , ""
    26                                         , "");
    27 
    28                 DL_BadReason.DataSource = PgB;
    29                 DL_BadReason.DataBind();
    30 
    31                 ddlPage.Items.Clear();
    32                 ddlPage.Items.Add("请跳页");
    33                 ListItem oItm = new ListItem();
    34                 for (int i = 0; i < PgB.PageCount; i++)
    35                 {
    36                     int iPage = i + 1;
    37                     oItm.Text = String.Format("{1}{0}{2}", iPage.ToString(), "", "");
    38                     oItm.Value = iPage.ToString();
    39                     ddlPage.Items.Add(new ListItem(oItm.Text.Trim(), oItm.Value));
    40                 }
    41 
    42 
    43             }
    44             catch (Exception ex)
    45             {
    46                 Response.Write("<b>Error Message-- </b>" + ex.Message.ToString());
    47             }
    48         }

    虽然这种分页方法远没有我们自己手写个存储过程再结合AJAX来进行分页爽,而且性能不高,用户体验效果也不理想。但这恰恰却适用于一些只需要用来展示数据的项目。当然,这比Repter好多了!

    最终分页效果如下:

  • 相关阅读:
    地图 SDK 系列教程-在地图上展示指定区域
    [奇思妙想]下一个和微博、微信同级别的应用为是什么样的
    [办公自动化]EXCEL不大,但是保存很慢
    [奇思妙想]公共图书馆+快递
    [奇思妙想]“停哪了”
    [IT学习]阿铭Linux 微信公众号 每日一题 解析
    [IT学习]GIT 学习
    [故障处理]西部数据wd elements xp 无法识别
    [奇思妙想]无人机
    [IT学习]跟阿铭学linux(第3版)
  • 原文地址:https://www.cnblogs.com/byvar/p/3666026.html
Copyright © 2020-2023  润新知