C#、ASP.NETを使用しています
並べ替え、編集機能を提供したGridviewがあります。並べ替えを実行すると、編集を実行できません。ソート後、編集は他の行に設定されます。取っているインデックスに問題があると思います。
誰かがこれを修正する方法を教えてもらえますか。
よろしくsbmarya
問題は、ソートが編集とは異なる呼び出し/データソースを使用していることだと思います。したがって、RowEditingイベントでは、ソート順(ASC()またはDESC()のいずれか)に関連するインデックスを取得しています。しかし、それから私は別の順序でデータを返すgetUsers()を使用してバインドしています。
私が行ったことは、ViewStateにある種のフラグ(値)を格納して、現在の並べ替え順序を示し、Editingイベントでバインドするときにそれを利用して、正しいメソッドを呼び出して同じものを返すことができるようにすることです。情報源。
よろしく、sbmarya
私もこの問題に直面しました。これが私がそれを修正した方法です。(私の例では、グリッドビューは送信日と呼ばれる列で並べ替えられています)。
a。グリッドビューの基になる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.
b。次に、上記の手順でセッションに保存されたdataTableを使用して、すべての編集/更新操作を実行します。常に適切な並べ替え順序で表示され、更新後に行インデックスが予期せず変更される問題は発生しません。