我正在使用 C#、ASP.NET
我有一个 Gridview,我为其提供了排序、编辑功能。执行排序时无法执行编辑。排序后编辑设置在其他行上。我认为它所采用的索引存在一些问题..
谁能帮我解决这个问题..
问候 sbmaya
我认为问题在于排序使用的调用/数据源与编辑不同。因此,在 RowEditing 事件中,我得到了一个相对于排序顺序(ASC() 或 DESC())的索引。但后来我使用 getUsers() 进行绑定,它以不同的顺序返回数据。
我所做的是我在 ViewState 中存储了某种标志(值)来指示我所处的排序顺序,并在我在 Editing 事件中绑定时使用它,这样我就可以调用正确的方法来返回相同的数据源。
问候, sbmarya
我也遇到了这个问题。这就是我修复它的方法。(在我的示例中,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 执行所有编辑/更新操作。它将始终以正确的排序顺序出现,并且您不会看到更新后行索引意外更改的问题。