いつも参考にさせていただいていますが、
少し問題にぶつかったので、質問させていただきます。
ソートを行った後に、ソート対象となる列の
値を変更すると、ソートがかかっているために
行が移動してしまう。
上記内容で、移動しないようにするには、
どのようにすればよいのでしょうか。
新規に列を追加し、変更前の情報を格納し、追加列を
ソートした方が良いのでしょうか。
説明が、不十分かもしれませんが、よろしくお願いします。
データグリッドは使わないのでよく分からないんですが、
ソートってどこでするんですか?。
極端な話、SQL 文で ORDER BY して表示してたり…
Recordset の Sort プロパティとか…
データグリッドで設定できるんですか?
特攻隊長まるるうさんご返答ありがとうございます。
>ソートってどこでするんですか?。
すいません「どこで」って、タイミングですか?
タイミングだとすると、グリッド上にデータを表示
させるとき以外にもソートは行います。
DataViewのSortプロパティ等で・・・
あと、データグリッドのAllowSortingプロパティを
設定することによって、グリッドのヘッダー部分を
クリックするとソートが可能になります。
知識不足で、文章が抽象的すぎますが、お願いします。
>AllowSortingプロパティ
ごめん。うちの環境には無いのよ、そのプロパティ…って.NETかよっ!?
それで質問は…
ソートの方法は色々あるけど AllowSorting プロパティ を True に
した時のことに限定して質問してて AllowSorting プロパティ を False に
するのでは何か分からないけど都合が悪くて、その理由を想像して回答
して欲しいということ?。
特攻隊長まるるうさん返答ありがとうございます。
すいません。
環境を書くのを忘れていました。
OS :XP
言語:VB.NET 2002
です。
>AllowSorting プロパティ を False にするのでは何か分からないけど
都合が悪くて
AllowSortingをFalseにすると確かSortが解除され初期表示に
戻ってしまったような・・・
Sortがかかったままグリッド上を編集したとい思ってりるのです。
Sortがかかっている列を編集すると、Sortがかかっているために
セルを移動したどっかに飛んでしまいます。
飛んでいくのをどうにか対処する方法は、ないでしょうか?
どうも継承すれば要らん機能が働かなくなるみたい(?)…それもどうかと思うんだけどw
これが正常に動くということは…なんかの設定変えれば良さそうなんだけど…いまいち
分からなかったので…詳しく調査して報告してくださぁい(>▽<)ノ(ぉ
[VB.NET2003]
Public Class DataViewNeo
Inherits DataView
Sub New(ByVal DataTableX As DataTable)
MyBase.New(DataTableX)
End Sub
End Class
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DemonstrateDataView()
End Sub
Private Sub DemonstrateDataView()
' Create one DataTable with one column.
Dim myTable As DataTable = New DataTable("myTable")
Dim colItem As DataColumn = New DataColumn("item", Type.GetType("System.String"))
myTable.Columns.Add(colItem)
' Add five items.
Dim NewRow As DataRow
Dim i As Integer
For i = 0 To 4
NewRow = myTable.NewRow()
NewRow("item") = "Item " & i
myTable.Rows.Add(NewRow)
Next
myTable.AcceptChanges()
' Create DataView objects.
'Dim firstView As DataView = New DataView(myTable)
Dim firstView As DataViewNeo = New DataViewNeo(myTable)
' Change the values in the table.
myTable.Rows(0)("item") = "tiger"
myTable.Rows(1)("item") = "fish"
myTable.Rows(2)("item") = "cat"
myTable.Rows(3)("item") = "dog"
firstView.Sort = "item DESC"
Me.DataGrid1.DataSource = firstView
End Sub
ツイート | ![]() |