排序ASP.NET后,Gridview Edit无法正常工作

时间:2010-06-04 00:50:19

标签: asp.net gridview sorting edit

我正在使用C#,ASP.NET

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

任何人都可以帮我解决这个问题..

此致 sbmarya

2 个答案:

答案 0 :(得分:0)

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

我做的是在ViewState中存储了某种标志(Value),以指示我在编辑事件中绑定时所处的排序顺序,以便我可以调用正确的方法返回相同的数据源。

此致 sbmarya

答案 1 :(得分:0)

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

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

                        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.

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