我页面里GridView和FormView一起绑定的一个ObjectDataSource,所以我在GridView里选择前事件里是这样写的
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
    this.FormView1.ChangeMode(FormViewMode.Edit);//FormView切换到跟新模板
    this.FormView1.Row.PageIndex = e.NewSelectedIndex;
}这样就能点选择的时候,把该行数据直接显示到FormView1里面去跟新,但是现在的问题是,当启用GridView的分页功能时,当选到第2页,第3页。。的时候,e.NewSelectedIndex又从0开始计算了,所以点第2页数据的时候,FormView里还是显示的GridView第一面里的数据,怎么解决呢?  我用的方法是
this.FormView1.Row.PageIndex=this.GridView1.Rows[e.NewSelectedIndex].FindControl("Label3") as Label).Text
用现实ID号的方法来实现,但是发现FormView里的PageIndex 貌似不是按GridView里的顺序在排,还是我对FormView里的PageIndex 理解错了,往高手指点,很急!!

解决方案 »

  1.   

    e.NewPageIndex * e.NewPageSize + e.NewSelectedIndex
      

  2.   

    不行啊,根本就没有e.NewPageIndex 和e.NewPageSize 这2个属性,我现在觉的可以用GridView1.PageCount(获取显示数据源所需要的页数)来控制,但是我不是很理解这个属性,有人知道吗?
      

  3.   

    不行啊,根本就没有e.NewPageIndex 和e.NewPageSize 这2个属性,我现在觉的可以用GridView1.PageCount(获取显示数据源所需要的页数)来控制,但是我不是很理解这个属性,有人知道吗?
      

  4.   

    GridView和FormView应该是两个ObjectDataSource;
    FormView的ObjectDataSource是根据GridView所选择的ID列出,
    这样就不会发生楼主所述情况了!!
      

  5.   

    谢谢大家,解决了
     this.FormView1.PageIndex = e.NewSelectedIndex + (this.GridView1.PageIndex) * this.GridView1.PageSize;