【问题标题】:Gridview Edit not working after Sorting ASP.NET对 ASP.NET 进行排序后,Gridview 编辑不起作用
【发布时间】:2011-02-27 14:06:30
【问题描述】:

我正在使用 C#、ASP.NET

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

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

问候 sbmary

【问题讨论】:

    标签: asp.net gridview sorting edit


    【解决方案1】:

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

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

    问候, sbmary

    【讨论】:

      【解决方案2】:

      我也遇到过这个问题。这就是我修复它的方法。 (在我的示例中,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.
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-11
        • 2012-11-02
        • 2017-12-14
        • 1970-01-01
        • 1970-01-01
        • 2013-08-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多