发现GridView的属性中没有AutoPostBack。我现在遇到的问题是:GridView分页功能,需要点击两次才能响应分页操作。跟踪后,第一次点击,只执行了Page_Load,而其中的IsPostBack是为假的,第二次点击才能响应分页事件。我想通过AutoPostBack强制让分页事件响应。但是GridView控件没有该属性。请问,有什么属性也是起到这个功能吗?

解决方案 »

  1.   

    你用的是gridview自帶的分頁還是第三方控件
    自带的怎么可能要点击两次才响应?
      

  2.   


    是的。是自带的。跟踪调试看了,第一次点击,只执行Page_Load就结束了,第二次才执行完Page_Load后执行点击事件函数。
      

  3.   


    protected void Page_Load(object sender, EventArgs e)
      {
    ……
    GridView GridViewDataSta = new GridView();
     GridViewDataSta.PageIndexChanging += new GridViewPageEventHandler(GridViewDataSta_PageIndexChanging);
    ……
    PlaceHolder1.Controls.Add(GridViewDataSta);
    DataBind();
    } protected void GridViewDataSta_PageIndexChanging(object sender, GridViewPageEventArgs e)
      {
      GridViewDataSta.PageIndex = e.NewPageIndex;
      DataBind();
      }是。我就是想知道,哪可能有问题?
      

  4.   


    protected void Page_Load(object sender, EventArgs e)
      {
    ……
    GridView GridViewDataSta = new GridView();
     GridViewDataSta.PageIndexChanging += new GridViewPageEventHandler(GridViewDataSta_PageIndexChanging);
    ……
    PlaceHolder1.Controls.Add(GridViewDataSta);
    DataBind();
    } protected void GridViewDataSta_PageIndexChanging(object sender, GridViewPageEventArgs e)
      {
      GridViewDataSta.PageIndex = e.NewPageIndex;
      DataBind();
      }
    请教一下,什么地方有问题?我是在后台动态加载的。
      

  5.   

    每一次都 DataBind(),晕死。动态加载 GridViewDataSta,也不需要重新绑定数据啊。每一次都绑定,不慢死,也得(因为在多用户经常并发修改数据时因为逻辑错误而)经常出现加载 GridViewDataSta 数据时的异常。
      

  6.   

    加载的时候调用分页干嘛呢,不明白!!!
    protected void Page_Load(object sender, EventArgs e)
      {
          if(!isPostBack){
             DataBind();
            }
      }直接这样写不行吗
      

  7.   

    page_load中添加if(!ispostback){}
    否则页面每次回发都会绑定一次gridview
      

  8.   


    我是在后台创建的GridView控件,前台没有。所以他的属性要定义一遍。
      

  9.   

    分页之后,重新绑定一下你的gridview的绑定方法
      

  10.   


    这个GridView是后台创建的,如果把它写在if(!ispostback){}里,点击下一页时,这个控件就消失了。我是菜鸟级的。这个思想是不是错的啊?如果不这样,那一般后台加载GirdView怎么做的呢?
      

  11.   

    直接告诉你问题吧,有了controls。add操作,必然回发两次才行protected void Page_Load(object sender, EventArgs e)
      {
    ……
    GridView GridViewDataSta = new GridView();
     GridViewDataSta.PageIndexChanging += new GridViewPageEventHandler(GridViewDataSta_PageIndexChanging);
    ……
    PlaceHolder1.Controls.Add(GridViewDataSta);
    DataBind();
    }
      

  12.   


    绑定了啊。
    protected void GridViewDataSta_PageIndexChanging(object sender, GridViewPageEventArgs e)
      {
      GridViewDataSta.PageIndex = e.NewPageIndex;
      DataBind();
      }
    关键是,现在第一次点击,根本不进这个函数。直接执行完Page_Load就完了。
      

  13.   

    仔细看一下这里面是怎么在gridview中动态创建控件的http://blog.csdn.net/mngzilin/archive/2010/06/12/5667670.aspx
      

  14.   


    哦。那咋办呢?我现在的需求就要动态加载GridView,而且位置也不确定。所以我采用了很多个PlaceHolder来确保它的位置。  那有什么方法绕过去呢?
      

  15.   


    你把page_load中的创建动作写到page_init中不久ok了?在gridview中也是如此,上面文章中保持状态也是在gridview——init中写的动态创建模板,页脚等一系列操作