datagrid数据表能分页,但是点击导航栏不能翻页,没反应,而且导航栏的数字1不能点击,我用的是datagrid的自动分页方式,代码如下:
public void datagridBak_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)//分页代码
        {
            datagridBak.CurrentPageIndex=e.NewPageIndex;
            DGBind();
        }private void DGBind()//绑定数据源
        {
            SqlConnection myConnection=new SqlConnection(common_cs.database.connectionstr);
            myConnection.Open();
            string strsj="select * from SJB";
            SqlDataAdapter myDataAdapter=new SqlDataAdapter(strsj,myConnection);
            DataSet myds=new DataSet();
            myDataAdapter.Fill(myds,"SJB");
            datagridBak.DataSource=myds.Tables["SJB"].DefaultView;
            datagridBak.DataBind();
            myConnection.Close();
        }
为什么啊??谢谢:)

解决方案 »

  1.   

    是不是在page_load事件中没把DGBind()写在
    if(!postback)
    {
    //这里
    }中啊?
      

  2.   

    完整地,如下应该没有问题:
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
    DGBind();
    }
    }public void datagridBak_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)//分页代码
            {
                datagridBak.CurrentPageIndex=e.NewPageIndex;
                DGBind();
            }private void DGBind()//绑定数据源
            {
                SqlConnection myConnection=new SqlConnection(common_cs.database.connectionstr);
                myConnection.Open();
                string strsj="select * from SJB";
                SqlDataAdapter myDataAdapter=new SqlDataAdapter(strsj,myConnection);
                DataSet myds=new DataSet();
                myDataAdapter.Fill(myds,"SJB");
                datagridBak.DataSource=myds.Tables["SJB"].DefaultView;
                datagridBak.DataBind();
                myConnection.Close();
            }
    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
                          this.datagridBak.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.datagridBak_PageIndexChanged);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
      

  3.   

    是不是在page_load事件中没把DGBind()写在
    if(!postback)
    {
    //这里
    }中啊?
    -----------------------------------------
    放了啊:)
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if(!IsPostBack)
    {
    DGBind();
    }

    }
      

  4.   

    试下这个public void datagridBak_PageIndexChanging(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)//分页代码
            {
                datagridBak.CurrentPageIndex=e.NewPageIndex;
                DGBind();
            }
      

  5.   

    完整地,如下应该没有问题:
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
    DGBind();
    }
    }public void datagridBak_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)//分页代码
            {
                datagridBak.CurrentPageIndex=e.NewPageIndex;
                DGBind();
            }private void DGBind()//绑定数据源
            {
                SqlConnection myConnection=new SqlConnection(common_cs.database.connectionstr);
                myConnection.Open();
                string strsj="select * from SJB";
                SqlDataAdapter myDataAdapter=new SqlDataAdapter(strsj,myConnection);
                DataSet myds=new DataSet();
                myDataAdapter.Fill(myds,"SJB");
                datagridBak.DataSource=myds.Tables["SJB"].DefaultView;
                datagridBak.DataBind();
                myConnection.Close();
            }
    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
                          this.datagridBak.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.datagridBak_PageIndexChanged);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    --------------------------------------------------------------------------------
    private void InitializeComponent()
    {    
    this.datagridBak.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.datagridBak_PageIndexChanged);
    this.datagridBak.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.datagridBak_ItemDataBound);
    this.submit.Click += new System.EventHandler(this.submit_Click);
    this.reset.Click += new System.EventHandler(this.reset_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    都有啊,郁闷了,这个会和html里的设置有关吗??
      

  6.   

    public void datagridBak_PageIndexChanging(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)//分页代码
            {
                datagridBak.CurrentPageIndex=e.NewPageIndex;
                DGBind();
            }
    ------------------------------------------------------------
    啊??什么意思??不好意思,我没明白,呵呵,这个好像没改什么啊??:)
      

  7.   

    PageIndexChanging
    这个改了,你的是PageIndexChanged
      

  8.   

    PageIndexChanging
    这个改了,你的是PageIndexChanged
    -------------------------------------
    我试了这样不行啊
    你说的意思是把只改这个函数的名字吗,这样管用
    还是说把OnPageIndexChanged改成OnPageIndexChanging,这个方法好像没有:)
      

  9.   

    用PageIndexChanging方法,不是只改行书名,你用的是2005吗,如果是应该有