zoukankan      html  css  js  c++  java
  • DataList分页功能代码

    DataList是不具备自动分页的功能的......

    DataList与DataGrid都是很好用的控件,但是非常遗憾的是DataList不具有象DataGrid那样的自动分页功能,即:他不具备PageSize这样的属性来控制分页,而DataGrid却不具备DataList的RepeatDirection和 RepeatColumns属性。发布这个,希望能够帮到刚刚学习.net的朋友

    a.aspx页:

    <TABLE cellSpacing=0 cellPadding=0 width=784 height="120" align=center border=0>
          <tr>
           <td align=center>
           <asp:datalist id="MyDataGrid" RepeatDirection=Horizontal RepeatColumns=5 showfooter=true borderwidth=0 runat=server>
                     <HeaderTemplate>
                     <table width=784 cellpadding=0 cellspacing=0 border=0 >
                     <tr>
                     </HeaderTemplate>
                     <ItemTemplate>
                             <td align=center>
                              <table width="100%" height="120">
                              <tr>
                              <td width=154 align="center">
                                <img width=130 height=90 src='<%# DataBinder.Eval(Container.DataItem, "P_ID", "Img.aspx?id={0}")%>'>
                              </td>
                              </tr>
                              <tr>
                              <td align=center>
                               名称: <%# DataBinder.Eval(Container.DataItem, "P_Name")%>
                              </td>
                              </tr>
                               </table>
                            </td>   
                  </ItemTemplate>
                  <FooterTemplate>
                    </tr>
                      </table>
                  </FooterTemplate>
               </asp:datalist>
           </td>
          </tr>
          </table>
          <table id=ttt width=784 align=center>
          
        <tr align="center" valign="middle" width=100%>
        <td align="center" valign="middle"><asp:LinkButton ID="btnFrist" runat="server" CommandName="Pager" CommandArgument="Frist" OnCommand="PagerButtonClick" Text="首页"></asp:LinkButton></td>
        <td align="center" valign="middle"><asp:LinkButton ID="btnPrev" runat="server" CommandName="Pager" CommandArgument="Prev" OnCommand="PagerButtonClick" Text="上一页"></asp:LinkButton></td>
        <td align="center" valign="middle"><asp:LinkButton ID="btnNext" runat="server" CommandName="Pager" CommandArgument="Next" OnCommand="PagerButtonClick" Text="下一页"></asp:LinkButton></td>
        <td align="center" valign="middle"><asp:LinkButton ID="btnLast" runat="server" CommandName="Pager" CommandArgument="Last" OnCommand="PagerButtonClick" Text="尾页"></asp:LinkButton></td>
        <td align="right"valign="middle">页<asp:Label ID="lblCurrentPage" runat="server" /></td><td align="left" valign="middle">/<asp:Label ID="lalPageCount" runat="server"/></td>
        <td align="center" valign="middle">共<asp:Label ID="lblRecordCount" runat="server" />条记录</td>
        <td align="center" valign="middle">转到第<asp:DropDownList ID="D1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="D1_SelectedIndexChanged" />页</td>
        </tr>
        </td>
        </tr>
        </table>

    a.aspx.cs页:

        private static int PageIndex;//保存当前页的索引
        private static int pagesize;//保存每个页面中的记录数目
        private static int CurrentPage;//为当前页序号-1
        private static int PageCount;//保存总页数
        private static int RecordCount;//总记录数


        public bool DropFill;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DropFill = true;
                pagesize = 10;//pagesize = MyDataGrid.RepeatColumns;可以设DataList的属性RepeatDirection="Horizontal" RepeatColumns="10",通过RepeatColumns来设置每页显示的条数
                CurrentPage = 0;
                GetPageCount();//得到总记录数
                Databind();
             }

        }
        public void GetPageCount()
        {
            string sql = "select * from prizes ";
            Conn c1 = new Conn();

            SqlCommand cmd = new SqlCommand(sql, c1.SqlConnection());

            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds, "table");

            RecordCount = ds.Tables["table"].DefaultView.Count;
            c1.SqlConnection().Close();
        }

    public void Databind()
        { D1.Items.Clear();
            string sql = "select * from prizes";
            Class1 c1 = new Class1();

            SqlCommand cmd = new SqlCommand(sql, c1.SqlConnection());

            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            PageIndex = CurrentPage * pagesize;
            da.Fill(ds,PageIndex,pagesize, "table");

            MyDataGrid.DataSource = ds.Tables["table"];
            MyDataGrid.DataBind();
            c1.CloseSqlConnection();

            PageCount = RecordCount / pagesize;
            if (RecordCount % pagesize != 0)
                PageCount++;
            lalPageCount.Text = PageCount.ToString();
            lblRecordCount.Text = RecordCount.ToString();
            if (lblCurrentPage.Text == "")
            {
                lblCurrentPage.Text = "1";
            }

            if (CurrentPage == 0)
            {
                btnFrist.Enabled = false;
                btnPrev.Enabled = false;
            }
            if (CurrentPage == PageCount - 1)
            {
                btnLast.Enabled = false;
                btnNext.Enabled = false;
            }

            //给下拉链表中添加页数
            if (DropFill == true)
            {
                for (int i = 1; i <= PageCount; i++)
                {
                    D1.Items.Add(new ListItem(i.ToString()));
                }
            }
            else
            {
                D1.Items.Add("1");
            }

        }
        protected void D1_SelectedIndexChanged(object sender, EventArgs e)
        {
            btnFrist.Enabled = true;
            btnLast.Enabled = true;
            btnNext.Enabled = true;
            btnPrev.Enabled = true;
            DropFill = false;

            CurrentPage = Int32.Parse(D1.SelectedValue.ToString())-1;
            //MyDataGrid.CurrentPageIndex = Pageindex - 1;
            DropFill = false;
            Databind();
            lblCurrentPage.Text = (CurrentPage+1).ToString();

        }

        protected void PagerButtonClick(object sender, CommandEventArgs e)
        {
            btnFrist.Enabled = true;
            btnLast.Enabled = true;
            btnNext.Enabled = true;
            btnPrev.Enabled = true;
            DropFill = false;

            string age = e.CommandArgument.ToString();

            switch (age)
            {
                case "Next":
                    if (CurrentPage < PageCount - 1)
                    {
                        CurrentPage++;
                    }
                    break;
                case "Prev":
                    if (CurrentPage > 0)
                    {
                        CurrentPage--;
                    }
                    break;
                case "Frist":
                    {
                        CurrentPage = 0;
                    }
                    break;
                case "Last":
                    {
                        CurrentPage = PageCount - 1;
                    }
                    break;
            }

            //MyDataGrid.CurrentPageIndex = PageIndex;
            Databind();
            lblCurrentPage.Text = Convert.ToString(CurrentPage+1);
        }

  • 相关阅读:
    14.3.1选择选项
    14.3 选择框表单
    14.2.4HTML5约束API验证
    input标签之外是否一定添加form标签
    14.2.3自动切换焦点
    php设计模式---抽象模式模式
    php设计模式---简单工厂模式
    git基本教程,每天更新
    第5章 卷积神经网络
    第3章 深度学习基础
  • 原文地址:https://www.cnblogs.com/Jace/p/1884324.html
Copyright © 2011-2022 走看看