SPREAD for Windows Forms 10.0J サンプルコード集 > ソート > ソートされた並び順をリセットする |
列ヘッダクリックによるソートは表示上のみのデータを並べ替えるため、実データ(データモデル)の並び順には影響を与えません。そのため、SheetView.DocumentModelsクラスメンバであるResetViewRowIndexesメソッドおよびResetViewColumnIndexesメソッド呼び出しを行うことで、並べ替えられた表示データを実データの並び順にリセットすることができます。但し、実データ(データモデル)そのものの並べ替えを行うSortRangeメソッド(SheetViewクラスメンバ)を行った場合のリセットは行えません。
なお、結合セルを含むシート上での自動ソートを行った場合に結合セルは一時的に非表示となりますが、上記2つのメソッド呼び出しによって再表示されます。
|
private void Form1_Load(object sender, System.EventArgs e) { //自動ソート機能を有効にします fpSpread1.ActiveSheet.Columns[0].AllowAutoSort = true; fpSpread1.ActiveSheet.DefaultStyle.CellType = new FarPoint.Win.Spread.CellType.NumberCellType(); fpSpread1.ActiveSheet.SetValue(0, 0, 10); fpSpread1.ActiveSheet.SetValue(1, 0, 100); fpSpread1.ActiveSheet.SetValue(2, 0, 50); fpSpread1.ActiveSheet.SetValue(3, 0, 40); fpSpread1.ActiveSheet.SetValue(4, 0, 80); fpSpread1.ActiveSheet.SetValue(5, 0, 1); fpSpread1.ActiveSheet.SetValue(6, 0, 65); fpSpread1.ActiveSheet.SetValue(7, 0, 20); fpSpread1.ActiveSheet.SetValue(8, 0, 30); fpSpread1.ActiveSheet.SetValue(9, 0, 35); } private void button1_Click(object sender, System.EventArgs e) { //すべての表示行/列インデックスをモデル行/列インデックスと同じになるようにリセットします fpSpread1.ActiveSheet.Models.ResetViewRowIndexes(); fpSpread1.ActiveSheet.Models.ResetViewColumnIndexes(); }
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load '自動ソート機能を有効にします FpSpread1.ActiveSheet.Columns(0).AllowAutoSort = True FpSpread1.ActiveSheet.DefaultStyle.CellType = New FarPoint.Win.Spread.CellType.NumberCellType FpSpread1.ActiveSheet.SetValue(0, 0, 10) FpSpread1.ActiveSheet.SetValue(1, 0, 100) FpSpread1.ActiveSheet.SetValue(2, 0, 50) FpSpread1.ActiveSheet.SetValue(3, 0, 40) FpSpread1.ActiveSheet.SetValue(4, 0, 80) FpSpread1.ActiveSheet.SetValue(5, 0, 1) FpSpread1.ActiveSheet.SetValue(6, 0, 65) FpSpread1.ActiveSheet.SetValue(7, 0, 20) FpSpread1.ActiveSheet.SetValue(8, 0, 30) FpSpread1.ActiveSheet.SetValue(9, 0, 35) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'すべての表示行/列インデックスをモデル行/列インデックスと同じになるようにリセットします FpSpread1.ActiveSheet.Models.ResetViewRowIndexes() FpSpread1.ActiveSheet.Models.ResetViewColumnIndexes() End Sub