В datagrid свойставо AllowSorting выставлено в true. После кое-каких манипуляций я назначаю DataGrid новый DataSource, с теми же полями. Как востановить сортировку, которую назначил пользователь во время работы программы?
Здравствуйте, INsideR, Вы писали: INR>В datagrid свойставо AllowSorting выставлено в true. После кое-каких манипуляций я назначаю DataGrid новый DataSource, с теми же полями. Как востановить сортировку, которую назначил пользователь во время работы программы?
подписаться на DataGrid.SortCommand Event
запоминать DataGridSortCommandEventArgs.SortExpression Property и присваивать его при DataGrid.DataBinding Event
Здравствуйте, Jammer, Вы писали:
J>Здравствуйте, INsideR, Вы писали: INR>>В datagrid свойставо AllowSorting выставлено в true. После кое-каких манипуляций я назначаю DataGrid новый DataSource, с теми же полями. Как востановить сортировку, которую назначил пользователь во время работы программы?
J>подписаться на DataGrid.SortCommand Event J>запоминать DataGridSortCommandEventArgs.SortExpression Property и присваивать его при DataGrid.DataBinding Event
Здравствуйте, INsideR, Вы писали:
INR>Мне надо под WinForms.
У меня всё сохраняется, если Datagrid.DataSource есть DataView
тестил так:
Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
If Me.DataGrid1.DataSource Is Me.DataView2 Then
Me.DataGrid1.DataSource = Me.DataView1
Else : Me.DataGrid1.DataSource = Me.DataView2
End If
End Sub
"INsideR" <16914@users.rsdn.ru> schrieb im Newsbeitrag news:1318982@news.rsdn.ru... >В datagrid свойставо AllowSorting выставлено в true. После кое-каких манипуляций я назначаю DataGrid новый DataSource, с теми же полями. Как востановить сортировку, которую назначил пользователь во время работы программы?
Если назначаешь новый (другой) DataSource-object, то надо перед назначением запомнить Sort-свойство от DataView, которым пользуется грид. После назначения надо ставить запомненное содержание.
Пример (надо скопировать в пустую форму):
Dim dg As New DataGrid
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
With dg
.Dock = DockStyle.Fill
.DataSource = getDataSet()
.DataMember = "Tab1"End With
Me.Controls.Add(dg)
Dim btn As New Button
With btn
.Dock = DockStyle.Top
.Text = "New DataSource"
AddHandler .Click, AddressOf newDataSet
End With
Me.Controls.Add(btn)
End Sub
Private Sub newDataSet(ByVal sender As Object, ByVal e As EventArgs)
With dg
Dim s As String = CType(CType(Me.BindingContext(.DataSource, .DataMember), CurrencyManager).List, DataView).Sort
.DataSource = getDataSet()
.DataMember = "Tab1"
CType(CType(Me.BindingContext(.DataSource, .DataMember), CurrencyManager).List, DataView).Sort = s
End With
End Sub
Private Function getDataSet() As DataSet
Dim dset As New DataSet
With dset
.Tables.Add(New DataTable("Tab1"))
With .Tables(0)
With .Columns()
.Add(New DataColumn("ID", GetType(Int32)))
.Add(New DataColumn("col1", GetType(Double)))
.Add(New DataColumn("col2", GetType(Int32)))
End With
For i As Integer = 1 To 100
Dim drow As DataRow = .NewRow
drow!ID = i
drow!col1 = 100 * Rnd()
drow!col2 = CInt(100 * Rnd())
.Rows.Add(drow)
Next
End With
End With
Return dset
End Function
Peter
Posted via RSDN NNTP Server 1.9
Сохранить сортировку в DataGrid
От:
Аноним
Дата:
10.08.05 12:49
Оценка:
Читаем про
DataGrid.SortCommand Event
DataGridSortCommandEventArgs.SortExpression Property