datalist 分页详解

CS文件:

                private int PageSize;   //每页条目数量
  private int RecordCount;  //总记录数
  private int CurrentPage;   //当前页码
  private int PageCount;    //总页数
 private void Page_Load(object sender, System.EventArgs e)
  {
                        RecordCount=getRecordCount();
   PageSize=10;   //初始化每页显示10条记录
   this.l_PageSize.Text=PageSize.ToString();
   PageCount=(RecordCount%PageSize)>0?(RecordCount/PageSize)+1:(RecordCount/PageSize);  //通过三元运算符获取总页数
   this.l_Pagecount.Text=PageCount.ToString();
   if(!this.IsPostBack)
   {
    //初始化当前页码为1页
    CurrentPage=1;  
    //页面Label显示页码
    this.l_CurrentPage.Text=CurrentPage.ToString();
    this.DataBindUser();
   }
  }
  private void DataBindUser()
  {
   SqlConnection conn=new SqlConnection("server=(local);uid=sa;pwd=790920;database=User_Data");
   conn.Open();
   SqlDataAdapter ada=new SqlDataAdapter("select * from uupo_User order by user_Id desc",conn);
   DataSet ds=new DataSet();
   ada.Fill(ds,"uupo_User");
   //PagedDataSource分页对象,功能:执行分页
            PagedDataSource page=new PagedDataSource();
   //设置分页对象数据源,数据源必须是表的一个视图
   page.DataSource=ds.Tables["uupo_User"].DefaultView;
   //是否允许分页
   page.AllowPaging=true;
   //当前页的索引(值为CurrentPage-1)
   page.CurrentPageIndex=CurrentPage-1;
   this.dl_UserList.DataSource=page;
   this.dl_UserList.DataKeyField="user_Id";
   this.dl_UserList.DataBind();
   conn.Close();
   //下面是设置按钮显示状态//
   //初始化按钮显示为TRUE
   this.btn_First.Enabled=true;
   this.btn_Next.Enabled=true;
   this.btn_Prv.Enabled=true;
   this.btn_Last.Enabled=true;
   if(CurrentPage==1)
   {
                  this.btn_First.Enabled=false;
    this.btn_Prv.Enabled=false;
    this.btn_Next.Enabled=true;
    this.btn_Last.Enabled=true;
   }
   if(CurrentPage==PageCount)
   {
    this.btn_First.Enabled=true;
    this.btn_Prv.Enabled=true;
    this.btn_Next.Enabled=false;
    this.btn_Last.Enabled=false;
   }
  }

                /// <summary>
  /// 获取用户总记录数
  /// </summary>
  /// <returns></returns>
  private int getRecordCount()
  {
                         SqlConnection conn=new SqlConnection("server=(local);uid=sa;pwd=790920;database=User_Data");
    conn.Open();
    SqlCommand cmd=new SqlCommand("select count(*) from uupo_User",conn);
    return (int)cmd.ExecuteScalar();  //ExecuteScalar()返回第一行第一列的值
  }

              /// <summary>
  /// 首页事件
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void btn_First_Click(object sender, System.EventArgs e)
  {
     CurrentPage=1;
     this.l_CurrentPage.Text="1";
     DataBindUser();
  }

  /// <summary>
  /// 上一页事件
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void btn_Prv_Click(object sender, System.EventArgs e)
  {
   CurrentPage=Convert.ToInt32(this.l_CurrentPage.Text);
   if(CurrentPage>1)
   {
               --CurrentPage;
      this.l_CurrentPage.Text=CurrentPage.ToString();
       DataBindUser();
   }
  }

  /// <summary>
  /// 下一页事件
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void btn_Next_Click(object sender, System.EventArgs e)
  {
   CurrentPage=Convert.ToInt32(this.l_CurrentPage.Text);
   if(CurrentPage<PageCount)
   {
    ++CurrentPage;
    this.l_CurrentPage.Text=CurrentPage.ToString();
        DataBindUser();
   }
  }

  /// <summary>
  /// 尾页事件
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void btn_Last_Click(object sender, System.EventArgs e)
  {
   CurrentPage=PageCount;
   this.l_CurrentPage.Text=CurrentPage.ToString();
   DataBindUser();
  }

                //删除操作
                private void dl_UserList_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
  {
   string userid=this.dl_UserList.DataKeys[e.Item.ItemIndex].ToString();
//   ImageButton button=(ImageButton)e.Item.FindControl("btn_Delete");
   if(e.CommandName=="Delete")
   {
                SqlConnection conn=new SqlConnection("server=(local);uid=sa;pwd=790920;database=User_Data");
    conn.Open();
    SqlCommand cmd=new SqlCommand("delete uupo_User where user_Id="+userid,conn);
    if(cmd.ExecuteNonQuery()>0)
    {
     conn.Close();
     Response.Write("<script>alert('删除成功!');window.location.href='DataList.aspx';</script>");
    }
    else
    {
     conn.Close();
                   Response.Write("<script>alert('删除失败!');window.location.href='DataList.aspx';</script>");
    }
   }
  }

                //绑定删除的触发事件
  private void dl_UserList_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
  {
   if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
   {
                ImageButton button=(ImageButton)e.Item.FindControl("btn_Delete");
    button.Attributes.Add("onclick","return confirm('确认删除吗?')");
   }
  }

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
前台绑定:
<asp:DataList id="dl_UserList" Width="100%" runat="server">
    <HeaderTemplate>
     <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#000033">
      <tr>
       <td width="9%" align="center" bgcolor="#000033"><span class="STYLE1">用户名</span></td>
       <td width="12%" height="30" align="center" bgcolor="#000033"><span class="STYLE1">密码问题</span></td>
       <td width="16%" height="30" align="center" bgcolor="#000033"><span class="STYLE1">密码答案</span></td>
       <td width="11%" height="30" align="center" bgcolor="#000033"><span class="STYLE1">联系方式</span></td>
       <td width="15%" height="30" align="center" bgcolor="#000033"><span class="STYLE1">出生日期</span></td>
       <td width="29%" height="30" align="center" bgcolor="#000033"><span class="STYLE1">联系地址</span></td>
       <td width="8%" height="30" align="center" bgcolor="#000033"><span class="STYLE1">操作</span></td>
      </tr>
    </HeaderTemplate>
    <ItemTemplate>
     <tr>
      <td height="25" bgcolor="#FFFFFF"><%# DataBinder.Eval(Container.DataItem,"user_Name")%></td>
      <td height="25" bgcolor="#FFFFFF"><%# DataBinder.Eval(Container.DataItem,"user_PassQuestion")%></td>
      <td height="25" bgcolor="#FFFFFF"><%# DataBinder.Eval(Container.DataItem,"user_PassAnswer")%></td>
      <td height="25" bgcolor="#FFFFFF"><%# DataBinder.Eval(Container.DataItem,"user_Telephone")%></td>
      <td height="25" bgcolor="#FFFFFF"><%# DataBinder.Eval(Container.DataItem,"user_Birthday")%></td>
      <td height="25" bgcolor="#FFFFFF"><%# DataBinder.Eval(Container.DataItem,"user_Addr")%></td>
      <td bgcolor="#FFFFFF">
       <asp:ImageButton ID="btn_Delete" ImageUrl="images/DelDoc.gif" CommandName="Delete" Runat="server"></asp:ImageButton></td>
     </tr>
    </ItemTemplate>
    <FooterTemplate>
     </table>
    </FooterTemplate>
   </asp:DataList>
                              <table height="30" width="100%" border="0">
    <tr>
     <td align="right">总页数:
      <asp:label id="l_Pagecount" Runat="server"></asp:label>每页显示:
      <asp:label id="l_PageSize" Runat="server"></asp:label>条,当前第
      <asp:Label ID="l_CurrentPage" Runat="server"></asp:Label>
      页&nbsp;
      <asp:Button ID="btn_First" Text="首页" Runat="server"></asp:Button>&nbsp;&nbsp;
      <asp:Button ID="btn_Prv" Text="上一页"  Runat="server"></asp:Button>&nbsp;&nbsp;
      <asp:Button ID="btn_Next"  Runat="server" Text="下一页"></asp:Button>&nbsp;&nbsp;
      <asp:Button ID="btn_Last" Runat="server" Text="尾页"></asp:Button>&nbsp;</td>
    </tr>
   </table> 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值