我页面里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 理解错了,往高手指点,很急!!
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 理解错了,往高手指点,很急!!
FormView的ObjectDataSource是根据GridView所选择的ID列出,
这样就不会发生楼主所述情况了!!
this.FormView1.PageIndex = e.NewSelectedIndex + (this.GridView1.PageIndex) * this.GridView1.PageSize;