2

我正在使用 C#、ASP.NET

我有一个 Gridview,我为其提供了排序、编辑功能。执行排序时无法执行编辑。排序后编辑设置在其他行上。我认为它所采用的索引存在一些问题..

谁能帮我解决这个问题..

问候 sbmaya

4

2 回答 2

0

我认为问题在于排序使用的调用/数据源与编辑不同。因此,在 RowEditing 事件中,我得到了一个相对于排序顺序(ASC() 或 DESC())的索引。但后来我使用 getUsers() 进行绑定,它以不同的顺序返回数据。

我所做的是我在 ViewState 中存储了某种标志(值)来指示我所处的排序顺序,并在我在 Editing 事件中绑定时使用它,这样我就可以调用正确的方法来返回相同的数据源。

问候, sbmarya

于 2010-06-23T13:59:03.260 回答
0

我也遇到了这个问题。这就是我修复它的方法。(在我的示例中,gridview 在名为提交日期的列上排序)。

一个。当 gridview 的底层数据表被创建和排序时,将其存储在会话变量中。诀窍是,在存储到会话变量之前,请确保存储已排序的视图。

                        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.

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

于 2013-09-13T11:03:57.140 回答