user819774
user819774

Reputation: 1514

declare dataview using object

I have a object in previous code and it is bind on datagrid. Now I need to add sort the column. I search the web to convert the dataTable from datasource. But I got an error'DataTable must be set prior to using DataView.' Does anyone tell me how to do it? Thanks in advance.

there is the code to bind the datagrid:

Dim thisOrder as New co.Orders(123)
dgrdOrders.DataSource=thisOrder
dgrdOrders.DataBind()

there is my code:

Private Sub dgrdOrders_SortCommand(source As Object, e As DataGridSortCommandEventArgs) Handles dgrdOrders.SortCommand        

    Dim dataTable As DataTable = TryCast(dgrdOrders.DataSource, DataTable)
    Dim dv As New DataView(dataTable)
    dv.Sort = e.SortExpression
    dgrdOrders.DataSource = dv
    dgrdOrders.DataBind()
End Sub

Upvotes: 0

Views: 86

Answers (1)

user819774
user819774

Reputation: 1514

Finally I found the way to sort it:

  Private Sub dgrdOrders_SortCommand(source As Object, e As DataGridSortCommandEventArgs) Handles dgrdOrders.SortCommand

    Dim lstOrders As New List(Of co.Order)
      For Each objOrder As co.Order In thisOrder
        lstOrders.Add(objOrder)
      Next

    Select Case e.SortExpression
       Case "Type"
          lstOrders  = lstOrders.OrderBy(Function(x) x.Type).ToList
       Case "Region"
          lstOrders  = lstOrders.OrderBy(Function(x) x.Region).ToList
     End Select
     dgrdOrders.DataSource = lstOrders  
     dgrdOrders.DataBind()

   End Sub

Upvotes: 1

Related Questions