if (!IsPostBack)
        {
            SqlConnection nwindConn = new SqlConnection("server=server;uid=;pwd=;Database=TNet");
            nwindConn.Open();            SqlDataAdapter myDa = new SqlDataAdapter();
            SqlCommand sqstr;
            DataSet ds = new DataSet();            sqstr = new SqlCommand("select * from GjGl", nwindConn);
            myDa.SelectCommand = sqstr;
            myDa.Fill(ds, "稿件");
            DataGrid1.Attributes.Add("ID", "gray");
            DataGrid1.Attributes.Add("ZCaption", "#ffffcc");
            DataGrid1.Attributes.Add("Author", "#BEC5DE");            this.DataGrid1.DataSource = ds;
            this.DataGrid1.DataBind();
            ds.Dispose();
            myDa.Dispose();
            myDa.Dispose();
            nwindConn.Close();
            nwindConn.Dispose();
        } 
这是数据的绑定,在属性中设置了Allowpaging=true,但是每次点击下一页就没有反应,而且在下面显示:javascript:_doPostBack('DataGrid1$_ct19$_ctl1',")。
请问应该如何解决?谢谢!

解决方案 »

  1.   

    你根本没有设置currepageindex的值嘛!
      

  2.   

    private void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
    {
    DataGrid1.CurrentPageIndex = e.NewPageIndex;
    BindGrid();
    }
      

  3.   

    private void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
    {
    DataGrid1.CurrentPageIndex = e.NewPageIndex;
    DataGrid1.DataBind();
    }
      

  4.   

    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }/// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
    this.Load += new System.EventHandler(this.Page_Load);}
    #endregion在CS中的上面内设那this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
    或者在页面上直接设
      

  5.   

    加上:private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    this.DataGrid1.CurrentPageIndex=e.NewPageIndex;
    DataBindToDG();//重新绑定数据
    }
      

  6.   

    private void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
    {
    [你控件名称].CurrentPageIndex = e.NewPageIndex;
    然后从新绑定:[你控件名称].DataBind();
    }
      

  7.   

    谢谢!
    我用了
    protected void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
        {
            DataGrid1.CurrentPageIndex = e.NewPageIndex;
            DataGrid1.DataBind();
        }
    但是一点下一页,怎么什么都没有了?
      

  8.   

    页面的或者DataGrid1的ViewState ???
      

  9.   

    vs2005不是这个事件
            protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
            {
                GridView1.PageIndex = e.NewPageIndex;他们要写在ing事件不是ed事件
      

  10.   

    还有既然是vs2005,干嘛用DataGrid这个名字呀?误导哦
    GridView吧
      

  11.   

    谢谢各位,但是还是没有解决。程序是由Vs2003转成2005的,所以有DataGrid。
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
            {
                GridView1.PageIndex = e.NewPageIndex;}
    用了这个事件后,点击下一页,还是空白,是不是还有什么地方不对?
      

  12.   

    我把if(!IsPostBack)去除就可以了。谢谢。那如果要排序,应该在GridView1中的Sorting中怎么表示?
      

  13.   

    把事件绑定一下,事件在属性框的上面有一个事件按钮,把你的方法绑定到PageIndex^上