2010-06-04 98 views
1

我正在使用C#,ASP.NETGridview编辑后排序ASP.NET

我有一个我已经提供了排序,编辑功能的GridView。我执行排序时无法执行编辑。排序后编辑设置在其他行。我认为有一些问题,它走的是指数..

任何一个可以帮助我如何解决这个..

问候 sbmarya

回答

0

我认为这个问题是,排序是通过与编辑不同的通话/数据通话。所以在RowEditing事件中,我得到了相对于排序顺序(ASC()或DESC())的索引。但后来我使用getUsers()绑定,它以不同的顺序返回数据。

我所做的是我在ViewState中存储了一些标志(值),以表明我在编辑事件中绑定时使用的排序顺序,以便我可以调用正确的方法返回相同的数据源。

问候, sbmarya

0

我面对这个问题为好。这是我如何修复它。 (在我的例子中,gridview在一个名为submit date的列上排序)。

a。当gridview的底层dataTable被crated并排序时,它将它存储在一个会话变量中。诀窍是,在存储到会话变量之前,请确保存储已排序的视图。

     dt.DefaultView.Sort = "Submit Date" + " " + "DESC"; 
         GridView1.DataSource = dt; 
         GridView1.DataBind(); 
         Session["gridViewData"] = dt.DefaultView.ToTable(); //Only storing dt will not have the sorted table stored in session. 

b。接下来,使用上述步骤中存储在session中的dataTable执行所有编辑/更新操作。它将始终以正确的排序顺序出现,并且在更新后您不会看到行索引意外更改的问题。