使用工具是VS2005  语言是:C#
怎么分页才能得到分页的效果的拉?
我要的效果如下:
   效果一:
   共1000条记录/100页,当前页:15 【首页】【上一页】【下一页】【尾页】 跳转到:"这里是个文本框,自己填数字" "加个按钮"
   效果二:
   【首页】【上一页】1 2 3 4 5 6 7 8 9 .....【下一页】【尾页】 跳转到:"这里是个文本框,自己填数字" "加个按钮"
希望好心的朋友们能给出源代码,谢谢!
在问一下,在ASP.NET中除了是用控件分页外,还可以用什么分页拉?
除了使用datalist\datagrid\datapa……
 还可以使用什么分页拉?
希望各位朋友能给我一个datalist分页的详细列子和一个不用控件的详细列子,谢谢各位!
效果希望是上面所述的效果谢谢!  希望大家能给我那两中效果的详细源代码,谢谢!
谢谢各位,真的很感谢大家的帮助!
谢谢!

解决方案 »

  1.   

    用AspNetPager 控件http://www.webdiyer.com/AspNetPager/default.aspx
      

  2.   


    ASP.NET Technical Articles
    GridView Examples for ASP.NET 2.0: Paging and Sorting the GridView's Data

     
      

  3.   

    用GridView控件,里面有一个Allowpage的属性,改为true,然后改一页的记录数,在事件属性里写PageChanging的Click事件就行了。
    建议你买本《ASP.NET程序开发范例宝典》看看,很多实际问题都有的
      

  4.   

    用pagedatasource这个类,前提是你的数据量不大
      

  5.   

    其实用个第三方控件就行了,不过我也是刚入门,所以经常做些这种造轮子的事,锻炼一下,呵呵。        /// <summary>
        /// 添加页码的函数
        /// </summary>
        protected void AddPageCode(Panel content) {              int t = this.GridView1.PageIndex + 1; //获取当前GridView的页码        int b = 1, pend = 10;        if (t > 10)
            {
                b = t - t % 10 + 1; //计算起始页号
                pend = b + 10 - 1; //结束页号
            }
            
            pend = pend > this.GridView1.PageCount ? this.GridView1.PageCount : pend; //如果页总数大于结束页号,则规整结束页号为页总数。
                   if (b > 10)
            {
                //添加前翻按钮
                LinkButton lb = new LinkButton();
                lb.Text = "<<";
                lb.CommandArgument = Convert.ToString(b - 1);
                lb.Width = 15;
                lb.Visible = true;
                lb.Click += new EventHandler(PageBut_Click);
                content.Controls.Add(lb); //将链接按钮加入控件。
            }
            for (int i = b; i <= pend; i++) //添加页码
            {
                LinkButton lb = new LinkButton();
                lb.Text = i.ToString();
                lb.CommandArgument = i.ToString();
                lb.Width = 10;
                lb.Visible = true;
                lb.Click += new EventHandler(PageBut_Click);
                if (i - 1 == this.GridView1.PageIndex)
                {
                    lb.Enabled = false;
                }  
                
                content.Controls.Add(lb);
            }        if (pend < this.GridView1.PageCount) //添加后翻按钮
            {
                LinkButton lb = new LinkButton();
                lb.Text = ">>";
                lb.CommandArgument = Convert.ToString(pend + 1);
                lb.Width = 15;
                lb.Visible = true;
                lb.Click += new EventHandler(PageBut_Click);
                content.Controls.Add(lb);
            }
        
        }    /// <summary>
        /// 响应翻页按钮被点击事件。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
          protected void PageBut_Click(object sender, EventArgs e)
        {
            
            LinkButton lb = (LinkButton)sender; 
            this.GridView1.PageIndex = int.Parse(lb.CommandArgument) - 1;
        }
    /// <summary>
        /// 在GridView的RowCreated事件里创建翻页按钮
        /// </summary>
      protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
        {
            
                if (e.Row.RowType == DataControlRowType.Pager)
                {
                    Panel ppr = (Panel)e.Row.FindControl("PagePanelRight");
                    if (ppr != null) {
                        this.AddPageCode(ppr);
                    }
                }            
        }
    OK,你再在GridVeiw的PageTemplate里加个Panel(PagePanelRight)就行了。代码随便改,就是动态创建控件时务必在GridView的RowCreated事件里创建,否则一翻页就不见了,我就血的教训 -_-!
      

  6.   


     string ConStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
        SqlConnection Con;    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //设置默认的排序顺序
                ViewState["CompanyName"] = "SupplierID";
                ViewState["Direction"] = "ASC";
                ViewState["LineNo"] = 0;
                //初始化的时候默认显示第一页
                lblCount.Text = "1";
                BindRepeter();
            }
        }    //判断命令
        protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            String Index = ((Label)Repeater1.Items[e.Item.ItemIndex].FindControl("lblID")).Text;
            Session["ID"] = Index;
            //编辑模式
            if (e.CommandName == "Edit")
            {
                string CompanyName = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblCompanyName"))).Text;
                string Name = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblName"))).Text;
                string Address = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblAddress"))).Text;
                string City = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblCity"))).Text;
                txtCompanyName.Text = CompanyName;
                txtContactName.Text = Name;
                txtAddress.Text = Address;
                txtCity.Text = City;
                if (Panel1.Visible == false)
                {
                    ShowMessage("进入编辑模式");            }
                SetDisplayTrue();
                btnInsert.Visible = false;
                btnUpdate.Visible = true;
                Button1.Visible = true;
            }
            //删除
            else if (e.CommandName == "Delete")
            {
                if (Panel1.Visible == true)
                {
                    ShowMessage("编辑模式下禁止删除");
                }
                else
                {
                    SetDisplayFalse();
                    string DeleteStr = "DELETE FROM Suppliers WHERE SupplierID='" + Index + "'";
                    Con =  new SqlConnection(ConStr);
                    SqlCommand DeleteCmd = new SqlCommand(DeleteStr,Con);
                    try
                    {
                        Con.Open();
                        DeleteCmd.ExecuteNonQuery();
                        ShowMessage("删除成功");
                        BindRepeter();
                    }
                    catch (Exception ex)
                    {
                        ShowMessage("删除有错误,请检查");
                    }
                    finally
                    {
                        Con.Dispose();
                    }
                    
                }
            }//新增
            else if (e.CommandName == "New")
            {
                if (Panel1.Visible == true)
                {
                    ShowMessage("编辑模式下禁止添加新行");
                }
                else
                {
                    SetDisplayTrue();
                    ClearWord();
                    btnInsert.Visible = true;
                    btnUpdate.Visible = false;
                    Button1.Visible = true;
                }        }
        }    //绑定Repeter
        private void BindRepeter()
        {
            string QueryCon = "SELECT SupplierID,CompanyName,ContactName,Address,City FROM Suppliers";
            Con = new SqlConnection(ConStr);
            SqlDataAdapter NorthWindDa = new SqlDataAdapter(QueryCon, ConStr);
            DataSet Ds = new DataSet();
            NorthWindDa.Fill(Ds, "Suppliers");
            //Repeater1.DataKeyNames = new string[] { "SupplierID" };
            DataView Dv = Ds.Tables["Suppliers"].DefaultView;
            //排序表达式
            string SortExpress = (string)ViewState["CompanyName"] + " " + (string)ViewState["Direction"];
            Dv.Sort = SortExpress;
            //绑定数据源
            //Repeater1.DataSource = Ds.Tables["Suppliers"];
            //利用PagedDataSource进行分页
            PagedDataSource PageDs = new PagedDataSource();
            PageDs.DataSource = Dv;
            PageDs.AllowPaging = true;
            PageDs.PageSize = 10;
            int CurrentPage = Convert.ToInt32(lblCount.Text);
            //当前页
            PageDs.CurrentPageIndex = CurrentPage-1;
            btnPage.Enabled = true;
            Button2.Enabled = true;
            if (CurrentPage == 1)
            {
                Button2.Enabled = false;
            }
            if (CurrentPage == PageDs.PageCount)
            {
                btnPage.Enabled = false;
            }
            //PageCount = PageDs.PageCount;
            lblPage.Text = "共" + PageDs.PageCount + "页,当前在第";
            //将PageDs作为数据源进行绑定
            Repeater1.DataSource = PageDs;
            Repeater1.DataBind();
            
        }    //显示编辑区域
        private void SetDisplayTrue()
        {
            lblCompanyName.Visible = true;
            lblName.Visible = true;
            lblAddress.Visible = true;
            lblCity.Visible = true;
            txtCompanyName.Visible = true;
            txtContactName.Visible = true;
            txtAddress.Visible = true;
            txtCity.Visible = true;
            Panel1.Visible = true;
        }    //隐藏编辑区域
        private void SetDisplayFalse()
        {
            lblCompanyName.Visible = false;
            lblName.Visible = false;
            lblAddress.Visible = false;
            lblCity.Visible = false;
            txtCompanyName.Visible = false;
            txtContactName.Visible = false;
            txtAddress.Visible = false;
            txtCity.Visible = false;
            Panel1.Visible = false;
        }    //封装javascript
        private void ShowMessage(string Message)
        {
            Literal TxtMsg = new Literal();
            TxtMsg.Text = "<script>alert('"+Message+"')</script>";
            Page.Controls.Add(TxtMsg);
        }
        //更新数据
        protected void btnUpdate_Click(object sender, EventArgs e)
        {
            string CompanyName = Server.HtmlEncode(txtCompanyName.Text.ToString());
            string ContactName = Server.HtmlEncode(txtContactName.Text.ToString());
            string Address = Server.HtmlEncode(txtAddress.Text.ToString());
            string City = Server.HtmlEncode(txtCity.Text.ToString());
            string UpdateStr = "UPDATE Suppliers SET CompanyName='" + CompanyName + "',ContactName='" + ContactName + "'," +
                     "Address='" + Address + "',City='" + City + "' WHERE SupplierID='" + Session["ID"] + "' ";
            Con = new SqlConnection(ConStr);
            SqlCommand UpdateCmd = new SqlCommand(UpdateStr,Con);
            try
            {
                Con.Open();
                UpdateCmd.ExecuteNonQuery();
                ShowMessage("更新成功");
                SetDisplayFalse();
                BindRepeter();
            }
            catch (Exception ex)
            {
                ShowMessage("更新出错,请重新输入");
            }
            finally
            {
                Con.Dispose();
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            SetDisplayFalse();
        }    //插入一行新数据
        protected void btnInsert_Click(object sender, EventArgs e)
        {
            string CompanyName = Server.HtmlEncode(txtCompanyName.Text.ToString());
            string ContactName = Server.HtmlEncode(txtContactName.Text.ToString());
            string Address = Server.HtmlEncode(txtAddress.Text.ToString());
            string City = Server.HtmlEncode(txtCity.Text.ToString());
            string InsertStr = "INSERT INTO Suppliers (CompanyName,ContactName,Address,City) VALUES('" + CompanyName + "','" + ContactName + "','" + Address + "','" + City + "')";
            Con = new SqlConnection(ConStr);
            SqlCommand InsertCmd = new SqlCommand(InsertStr, Con);
            try
            {
                Con.Open();
                InsertCmd.ExecuteNonQuery();
                ShowMessage("插入成功");
                SetDisplayFalse();
                BindRepeter();
            }
            catch (Exception ex)
            {
                ShowMessage("插入失败,请重新检查");
            }
            finally
            {
                Con.Dispose();
            }
        }}
      

  7.   

        private void PageView(int Index)
        {
            if (Session["Dv"] != null)
            {
                PagedDataSource PageSource = new PagedDataSource();
                PageSource.AllowPaging = true;
                PageSource.PageSize = 10;
                PageSource.DataSource = ((DataView)Session["Dv"]);
                PageSource.CurrentPageIndex = Index;
                //lblCount.Text = "共" + PageSource.PageCount + "页,当前第" + (PageSource.CurrentPageIndex + 1) + "页";
                Repeater1.DataSource = PageSource;
                Repeater1.DataBind();           
            }
           
        }
        */    //下一页
        protected void btnPage_Click(object sender, EventArgs e)
        {
            //更改pageds的当前页数
            lblCount.Text = Convert.ToString(Convert.ToInt32(lblCount.Text) + 1);
            BindRepeter();
        }    //上一页
        protected void Button2_Click(object sender, EventArgs e)
        {
            //更改当前页
            lblCount.Text = Convert.ToString(Convert.ToInt32(lblCount.Text)-1);
            BindRepeter();
        }    //排序
        protected void btnSort_Click(object sender, EventArgs e)
        {
            //判断排序表达式的顺序
            if (ViewState["Direction"].ToString() == "DESC")
            {
                ViewState["Direction"] = "ASC";
            }
            else
            {
                ViewState["Direction"] = "DESC";
            }
            BindRepeter();
        }
    我这个是repeter的分页和增,删,改,查。楼主可以参考一下,基本上课datalist类似。
      

  8.   

    大名鼎鼎的 AspNetPager  吴旗娃出品