我正在使用C#,ASP.NET
我有一个Gridview,我为其提供了排序,编辑功能。执行排序时,我无法执行编辑。排序后,在另一行上设置编辑。我认为它正在采取的索引存在一些问题..
任何人都可以帮我解决这个问题..
此致 sbmarya
答案 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执行所有编辑/更新操作。它将始终以正确的排序顺序出现,并且您不会在更新后看到行索引意外更改的问题。