前台代码:<asp:GridView ID="gvData" Width="90%"  runat="server" 
                    AutoGenerateColumns="False" PageSize = "30"
                    DataKeyNames="COUNT" AllowSorting="True" 
                    onselectedindexchanged="gvData_SelectedIndexChanged" 
                    onrowdeleting="gvData_RowDeleting" CellPadding="3" 
        BackColor="White" BorderColor="#E7E7FF" 
        BorderStyle="None" BorderWidth="1px" 
        onpageindexchanging="gvData_PageIndexChanging" AllowPaging="True">
后台代码:    protected void gvData_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvData.PageIndex = e.NewPageIndex;
    }
我照着书上写得做的,无法正常分页,只显示第1页,按后面的“2”、“3”......显示的都是第一页。

解决方案 »

  1.   

     protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView _gridView = (GridView)sender;        // Set the PageIndex to the NewPageIndex
            _gridView.PageIndex = e.NewPageIndex;        // Repopulate the GridView
            _gridView.DataSource = _sampleData;
            _gridView.DataBind();
        }
      

  2.   

    protected void gvData_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvData.PageIndex = e.NewPageIndex;
            gvData.DataSource = dt.DefaultView;//需要重新绑定一次
        }
      

  3.   

    我在下面查询代码里有个dtData,我想作为gvData.DataSource,如何调用?    protected void btnSelect_Click(object sender, EventArgs e)
        {
            string exSql = "";
            SqlParameter[] parameters = new SqlParameter[5];
            if (txtISDN.Text.Trim().Length > 0)
            {
                exSql += " and isdn=@ISDN";
                SqlParameter isdn = new SqlParameter("@ISDN", SqlDbType.VarChar);
                isdn.Value = txtISDN.Text.Trim();
                parameters[0] = isdn;
            }        if (txtName.Text.Trim().Length > 0)
            {
                exSql += " and bookname like @NAME ";
                SqlParameter name = new SqlParameter("@NAME", SqlDbType.VarChar);
                name.Value = "%" + txtName.Text.Trim() + "%";
                parameters[1] = name;
            }        if (txtPublisher.Text.Trim().Length > 0)
            {
                exSql += " and publisher like @PUBLISHER ";
                SqlParameter publisher = new SqlParameter("@PUBLISHER", SqlDbType.VarChar);
                try
                {
                    if (txtPublisher.Text == "全部")
                    {
                        publisher.Value = "%" + "" + "%";
                    }
                    else
                    {
                        publisher.Value = "%" + txtPublisher.Text.Trim() + "%";
                    }
                }
                catch (Exception ex)
                {            }
                parameters[2] = publisher;
            }        if (txtCategory.Text.Trim().Length > 0)
            {
                exSql += " and category like @CATEGORY ";
                SqlParameter category = new SqlParameter("@CATEGORY", SqlDbType.VarChar);
                try
                {
                    if (txtCategory.Text == "全部")
                    {
                        category.Value = "%" + "" + "%";
                    }
                    else
                    {
                        category.Value = "%" + txtCategory.Text.Trim() + "%";
                    }
                }
                catch (Exception ex)
                {            }
                parameters[3] = category;
            }        if (txtAddress.Text.Trim().Length > 0)
            {
                exSql += " and address like @ADDRESS ";
                SqlParameter address = new SqlParameter("@ADDRESS", SqlDbType.VarChar);
                try
                {
                    if (txtAddress.Text == "全部")
                    {
                        address.Value = "%" + null + "%";
                    }
                    else
                    {
                        address.Value = "%" + txtAddress.Text.Trim() + "%";
                    }
                }
                catch (Exception ex)
                {            }
                parameters[4] = address;
            }
            DataTable dtData = new DataTable();
            try
            {
                dtData = this.getData(parameters, exSql);
                this.lbcount.Text = dtData.Rows.Count.ToString();
            }
            catch (Exception ex)
            {        }
            GlobleClass.FillGridView(dtData, gvData, null);    }
      

  4.   

    难道又是 ispostback 再捣鬼?!
      

  5.   

    我只能用了一个最傻的办法,把我前面发布的那段代码复制在
    protected void gvData_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvData.PageIndex = e.NewPageIndex;
        }
    里,绑定数据源dtData就好了,只是代码好像变得很冗余,不知道怎么优化。