用gridview做了简单网页分页,当用上、下页功能来翻页时候得到的url地址都是http://10.16.101.227/zcfg.aspx?qid=21这种形式的地址,url地址不因翻到下一页而改变。怎么在url地址里显示出于PageIndex数字有关的编号啊?比如后面还加个page=1、page=2这种方式的显示。还有上、下页的按钮双击才能触发事件,单击没反应是怎么回事?按钮在单击的状态下要是刷新网页就会提示“不重新发送信息 则无法刷新网页”这样的警告,然后重新再刷一下就到下一页了。我初学者,请说的详细点好吗?

解决方案 »

  1.   

    用这个分页吧。PageIndexChanging事件
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            GridView1.DataSource = xxxxx;
            GridView1.DataBind();
        }
      

  2.   

    allowpaging=true
    可能是这个就可以吧
      

  3.   

    GridView默认只能通过Postback回发方式分页,也就是提交表单的形式,要通过url分页,必须用第三方控件,比如我做的AspNetPager
      

  4.   

    aspnetpager, 你试试,这个很好
      

  5.   

    首先启用分页allowpaging=true,光是这样还不行,
    注册pageIndexChanging事件
    protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e) 
        { 
            GridView2.PageIndex = e.NewPageIndex; //设置当前的页数
            GridView2.DataSource = 数据源; 
            GridView2.DataBind(); 
        }
      

  6.   

    gridview allowpaging=true 
    protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e) 
        { 
            GridView2.PageIndex = e.NewPageIndex; //设置当前的页数 
            GridView2.DataSource = 数据源; 
            GridView2.DataBind(); 
        }
      

  7.   


    public partial class index_admin_hotel_AddDining : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {            init();
            }
            
            Panel1.Visible = false;
        }
        public void init()
        {
            GridView1.DataSource = BLL.DiningManager.GetDiningAll();
            this.GridView1.AllowPaging = true;
            this.GridView1.PageSize =20;
            //GridView1.PageIndex=j;
            GridView1.DataBind();
            if (this.GridView1.PageIndex == 0)
            {
                this.LinkButtonone.Enabled = false;
                this.LinkButtontwo.Enabled = false;
                
            }
            else
            {
                this.LinkButtonone.Enabled = true;
                LinkButtontwo.Enabled = true;        }
            if (GridView1.PageIndex == GridView1.PageCount - 1)
            {
                this.LinkButtonthree.Enabled = false;
                this.LinkButtonfour.Enabled = false;
                
            }
            else
            {
                
                this.LinkButtonthree.Enabled = true;
                LinkButtonfour.Enabled = true;
            }    }    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {        GridView1.DataSource = BLL.DiningManager.GetDiningAll();
            this.GridView1.AllowPaging = true;
            this.GridView1.PageSize =20;
            GridView1.PageIndex = e.NewPageIndex;
            GridView1.DataBind();        if (this.GridView1.PageIndex == 0)
            {
                this.LinkButtonone.Enabled = false;
                this.LinkButtontwo.Enabled = false;        }
            else
            {
                this.LinkButtonone.Enabled = true;
                LinkButtontwo.Enabled = true;        }
            if (GridView1.PageIndex == GridView1.PageCount - 1)
            {
                this.LinkButtonthree.Enabled = false;
                this.LinkButtonfour.Enabled = false;        }
            else
            {            this.LinkButtonthree.Enabled = true;
                LinkButtonfour.Enabled = true;
            }
        }
        protected void btnAdd_Click(object sender, EventArgs e)
        {    }
        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {    }
    //四个linkButton共用一个clich方法
        protected void btnmo_Click(object sender, EventArgs e)
        {
            int i = 0;
            switch (((LinkButton)sender).CommandArgument.ToString())
            {
                case "first":
                    GridView1.PageIndex = 0;
                    i=GridView1.PageIndex;
                    break;
                case "pry":
                    GridView1.PageIndex = GridView1.PageIndex - 1;
                    i = GridView1.PageIndex;
                    break;
                case "next":
                    GridView1.PageIndex = GridView1.PageIndex + 1;
                    i = GridView1.PageIndex;
                    break;
                case "last":
                    GridView1.PageIndex = GridView1.PageCount - 1;
                    i = GridView1.PageIndex;
                    break;
            }
            init();//重新绑定数据
           
        }
    <asp:LinkButton ID="LinkButtonone" CommandArgument="first" OnClick="btnmo_Click" runat="server">首页</asp:LinkButton>
        <asp:LinkButton ID="LinkButtontwo" CommandArgument="pry" OnClick="btnmo_Click" runat="server">上一页</asp:LinkButton>
        <asp:LinkButton ID="LinkButtonthree" CommandArgument="next" OnClick="btnmo_Click" runat="server">下一页</asp:LinkButton>
        <asp:LinkButton ID="LinkButtonfour" CommandArgument="last" OnClick="btnmo_Click" runat="server">尾页</asp:LinkButton>比较基础的一个
      

  8.   

    还是没解决问题啊。你们给说的这里的数据源是什么?
           GridView2.PageIndex = e.NewPageIndex; //设置当前的页数 
            GridView2.DataSource = 数据源; 
            GridView2.DataBind(); 
    我怎么指定这个数据源啊?谢谢大家啊!给我说了这么多。
      

  9.   


    数据源,顾名思义就是这个GridView的数据来源,比如Sqldatasource,Accessdatasource如果我用SqlDataSource,那就应该写成GridView2.DataSourceID = “sqldatasource1“;
            GridView2.DataBind()
      

  10.   

    3楼提供的那个第三方插件可以实现你所说的功能,用Gridview自带的paging功能是不行的
      

  11.   

    PageIndexChanging事件 
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 

       GridView1.PageIndex = e.NewPageIndex; 
       GridView1.DataSource = xxxxx; 
       GridView1.DataBind(); 
    }页面中GridView设置allowpaging=true
      

  12.   

    网上DOWN一个ASPNETPAGER控件实现分页,功能很强大的,自带的太弱了
      

  13.   

    嗯,总算开始明白了你们的意思。也谢谢3楼webdiyer的回答,我这几天先学学你做的AspNetPager控件。
      

  14.   

    会使用AspNetPager了,确实比GridView自带的分页好用多了。谢谢大家!