我用gridview分页显示了一些数据,第一页正常,模板列里也正常,但是一点点击“下一页”,这些模板列里的内容就没有了,只留个这列的标题在那里!如何解决呢???各位大人!

解决方案 »

  1.   

    protected void BTPageIndexChange_Click(object sender, EventArgs e)
        {
            string Arg = ((LinkButton)sender).CommandArgument;        switch (Arg)
            {
                case "First":
                    this.GridView1.PageIndex = 0;
                    break;
                case "Next":
                    if (this.GridView1.PageIndex < this.GridView1.PageCount - 1)
                        this.GridView1.PageIndex += 1;
                    break;
                case "Prev":
                    if (this.GridView1.PageIndex > 0)
                        this.GridView1.PageIndex -= 1;
                    break;
                case "Last":
                    if (this.GridView1.PageCount > 1)
                    {
                        this.GridView1.PageIndex = this.GridView1.PageCount - 1;
                    }
                    break;
            }        BindData();
        }
      

  2.   

    重新绑定BindData()这个有问题吗?注释掉或者贴出来看看。
      

  3.   

    public void BindData()
        {
            try
            {
                Session["Column"] += "机票明细";
               
                if (!CheckRight("07003", "07", false))
                {
                    Session["Column"] = Session["Column"].ToString().Replace("佣金(元)", "");
                    Session["Column"] = Session["Column"].ToString().Replace("佣金比率", "");
                }
                if (!CheckRight("07004", "07", false))
                {
                    Session["Column"] = Session["Column"].ToString().Replace("毛利(元)", "");
                }            Session["Column"] += "充值";
                for (int i = this.GridView1.Columns.Count - 1; i > -1; i--)
                {
                    if (Session["Column"] != null && !Session["Column"].ToString().Contains(this.GridView1.Columns[i].HeaderText))
                    {
                        this.GridView1.Columns.Remove(this.GridView1.Columns[i]);
                    }
                }            if (Session["sql"] != null)
                {
                    //string temp = Session["Group"].ToString();
                    DataTable dt = Query.ProcessSql(Session["sql"].ToString(), "MYAMS20");
                    //dt.DefaultView.Sort =ViewState["SortExpression"].ToString()+" "+ViewState["SortDirection"].ToString();
                    
                    this.GridView1.DataSource = dt;
                    this.GridView1.DataBind();                this.LBCurPage.Text = (this.GridView1.PageIndex + 1).ToString();
                    this.LBTotalPage.Text = this.GridView1.PageCount.ToString();
                    this.LBCurRecord.Text = (this.GridView1.PageIndex * this.GridView1.PageSize + 1).ToString();
                    this.LBTotalRecord.Text = (this.GridView1.PageSize * this.GridView1.PageIndex + this.GridView1.Rows.Count).ToString();                if (dt.Rows.Count < 1)
                    {
                        this.LBTip.Text = "查询结果为空!";
                    }
                }
            }
            catch {
                this.LBTip.Text = "查询结果为空!";
            }
        }
      

  4.   

    楼主,你在Session里放的东西太多了吧?
      

  5.   

    你跟一下,Session["sql"] 是不是为空?dt是不是还有值?
      

  6.   

    是不是这样
             case "Next":
                    if (this.GridView1.PageIndex < this.GridView1.PageCount - 1)                    this.GridView1.CurrentPageIndex +=1                break;
      

  7.   

    将你的数据 绑定 写到
    if(!IsPostBack)
    {
    //里面试试
    }