下面这个方法也写了 我把显示gridview数据的方法写在plage_load事件里 在生成的页面上点击第2、3页就好用 而且我把显示gridview数据的方法写在一个按钮事件里,当面页面生成后 我点面页面上的按钮可以显示出girdview的数据,但是点击第2、3页的时候 此时页面就为空了 不显示第2、3页的数据呢?请问是怎么回事?protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        GridView1.DataBind();
    }        string sqlSelect;
        sqlClass sqlObject = new sqlClass();
        sqlSelect = "select * from 问题答案表";
        DataSet dtData = new DataSet();
        dtData = sqlObject.ds(sqlSelect);
       
        GridView1.DataSource = dtData;
        GridView1.DataBind();

解决方案 »

  1.   

     public void dlBind()
        {
            int curpage = Convert.ToInt32(this.labPage.Text);
            PagedDataSource ps = new PagedDataSource();
            sqlconn = myCon.getCon();
            sqlconn.Open();
            string sqlstr = "select a.*,b.* from tb_Card as a join tb_Module as b on a.ModuleID=b.ModuleID";
            SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlconn);
            DataSet ds = new DataSet();
            MyAdapter.Fill(ds, "tb_Card");
            ps.DataSource = ds.Tables["tb_Card"].DefaultView;
            ps.AllowPaging = true; //是否可以分页
            ps.PageSize = 2; //显示的数量
            ps.CurrentPageIndex = curpage - 1; //取得当前页的页码
            this.lnkbtnUp.Enabled = true;
            this.lnkbtnNext.Enabled = true;
            this.lnkbtnBack.Enabled = true;
            this.lnkbtnOne.Enabled = true;
            if (curpage == 1)
            {
                this.lnkbtnOne.Enabled = false;//不显示第一页按钮
                this.lnkbtnUp.Enabled = false;//不显示上一页按钮
            }
            if (curpage == ps.PageCount)
            {
                this.lnkbtnNext.Enabled = false;//不显示下一页
                this.lnkbtnBack.Enabled = false;//不显示最后一页
            }
            this.labBackPage.Text = Convert.ToString(ps.PageCount);
            this.dlContent.DataSource = ps;
            this.dlContent.DataKeyField = "CardID";
            this.dlContent.DataBind();
        }
        protected void lnkbtnOne_Click(object sender, EventArgs e)
        {
            this.labPage.Text = "1";
            this.dlBind();
        }
        protected void lnkbtnUp_Click(object sender, EventArgs e)
        {
            this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) - 1);
            this.dlBind();
        }
        protected void lnkbtnNext_Click(object sender, EventArgs e)
        {
            this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) + 1);
            this.dlBind();
        }
        protected void lnkbtnBack_Click(object sender, EventArgs e)
        {
            this.labPage.Text = this.labBackPage.Text;
            this.dlBind();
        }
      

  2.   

    public void databind()
    {
            string sqlSelect; 
            sqlClass sqlObject = new sqlClass(); 
            sqlSelect = "select * from 问题答案表"; 
            DataSet dtData = new DataSet(); 
            dtData = sqlObject.ds(sqlSelect); 
          
            GridView1.DataSource = dtData; 
            GridView1.DataBind();
    }protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
        { 
            GridView1.PageIndex = e.NewPageIndex; 
            databind(); 
        } 
      

  3.   

        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
        { 
            string sqlSelect; 
            sqlClass sqlObject = new sqlClass(); 
            sqlSelect = "select * from 问题答案表"; 
            DataSet dtData = new DataSet(); 
            dtData = sqlObject.ds(sqlSelect); 
          
            GridView1.DataSource = dtData; 
            GridView1.DataBind();
            GridView1.PageIndex = e.NewPageIndex; 
        } 
      

  4.   


    源:
                    <table style="width: 670px">
                        <tr>
                            <td style="width: 100px">
                                &nbsp;共<asp:Label ID="lb_count" runat="server" Text="Label"></asp:Label>个</td>
                            <td style="width: 100px">
                                共<asp:Label ID="lb_page" runat="server" Text="Label"></asp:Label>页</td>
                            <td style="width: 100px">
                                <asp:Label ID="lb_currentpage" runat="server" Text="1"></asp:Label></td>
                            <td style="width: 100px">
                                <asp:LinkButton ID="lbtn_frist" runat="server" OnClick="lbtn_frist_Click" CssClass="link1">首页</asp:LinkButton></td>
                            <td style="width: 100px">
                                <asp:LinkButton ID="lbtn_up" runat="server" OnClick="lbtn_up_Click" CssClass="link1">上一页</asp:LinkButton></td>
                            <td style="width: 100px">
                                <asp:LinkButton ID="lbtn_down" runat="server" OnClick="lbtn_down_Click" CssClass="link1">下一页</asp:LinkButton></td>
                            <td style="width: 100px">
                                <asp:LinkButton ID="lbtn_last" runat="server" OnClick="lbtn_last_Click" CssClass="link1">尾页</asp:LinkButton></td>
                            <td style="width: 100px">
                                <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
                                </asp:DropDownList></td>
                        </tr>
                    </table>
    C#
     protected void Page_Load(object sender, EventArgs e)
        {
            dlbind();
        }    public void dlbind()
        {
            string sqlstr = "";
            string num = Request.QueryString["num"];
            if (num == null)
            {
                sqlstr = "select * from resumeoverview order by id desc";
            }
            else if (num.Equals("20"))
            {
                sqlstr = "select top 20 * from resumeoverview order by id desc";
            }
            else if (num.Equals("50"))
            {
                sqlstr = "select top 50 * from resumeoverview order by id desc";
            }
            else if (num.Equals("100"))
            {
                sqlstr = "select top 100 * from resumeoverview order by id desc";
            }上面的是数据库连接        int curpage = Convert.ToInt32(lb_currentpage.Text);
            SqlConnection conn = new SqlConnection("server=;database=zhaopin;Integrated Security=True");//zhaopin是数据库的名字
            SqlDataAdapter da = new SqlDataAdapter(sqlstr, conn);
            DataSet ds = new DataSet();
            da.Fill(ds, "resumeoverview");//resumeoverview是你要填充的表名下同
            PagedDataSource ps = new PagedDataSource();
            ps.DataSource = ds.Tables["resumeoverview"].DefaultView;
            ps.AllowPaging = true;
            ps.PageSize = 10;
            ps.CurrentPageIndex = curpage - 1;
            lb_page.Text = Convert.ToString(ps.PageCount);
            lb_count.Text = ps.DataSourceCount.ToString();
            if (!IsPostBack)
            {
                for (int i = 1; i <= ps.PageCount; i++)
                {
                    DropDownList1.Items.Add(i.ToString());
                }
                DropDownList1.SelectedItem.Text = curpage.ToString();
            }
            lbtn_frist.Enabled = true;
            lbtn_up.Enabled = true;
            lbtn_down.Enabled = true;
            lbtn_last.Enabled = true;
            if (curpage == 1)
            {
                lbtn_frist.Enabled = false;
                lbtn_up.Enabled = false;
            }
            if (curpage == ps.PageCount)
            {
                lbtn_down.Enabled = false;
                lbtn_last.Enabled = false;
            }
            DataList1.DataSource = ps;
            DataList1.DataKeyField = "id";
            DataList1.DataBind();
        }    protected void lbtn_frist_Click(object sender, EventArgs e)
        {
            lb_currentpage.Text = "1";
            dlbind();
        }    protected void lbtn_up_Click(object sender, EventArgs e)
        {
            lb_currentpage.Text = Convert.ToString(Convert.ToInt32(lb_currentpage.Text) - 1);
            dlbind();
        }
        protected void lbtn_down_Click(object sender, EventArgs e)
        {
            lb_currentpage.Text = Convert.ToString(Convert.ToInt32(lb_currentpage.Text) + 1);
            dlbind();
        }    protected void lbtn_last_Click(object sender, EventArgs e)
        {
            lb_currentpage.Text = lb_page.Text;
            dlbind();
        }
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int page = Convert.ToInt32(DropDownList1.SelectedItem.Value);
            lb_currentpage.Text = page.ToString();
            dlbind();
        }
    不同使用分页空间都可以,要是griview自带的又不是很灵活,干脆自己用label跟dropdownlist做一个就行了,方便灵活,