DataTable.DefaultView.Sort似乎不起作用

时间:2010-02-19 19:04:15

标签: asp.net datatable sorting dataview

我填充DataTable,然后对该DataTable的DefaultView进行排序。当我将DataTable设置为我的报告的源时,排序不起作用。如果它有帮助,这里是代码(GetData返回一个有效的DataTable):

    Dim dt As DataTable = a.GetData(Parm1, Parm2, Parm3)

    If rbtSortByField1.Checked Then
        dt.DefaultView.Sort = "Field1 ASC"
    ElseIf rbtSortByField2.Checked Then
        dt.DefaultView.Sort = "Field2 ASC"
    ElseIf rbtSortByField3.Checked Then
        dt.DefaultView.Sort = "Field3 ASC"
    End If

    rpt.SetDataSource(dt.DefaultView.Table)
    'This also doesn't work
    'rpt.SetDataSource(dt)

2 个答案:

答案 0 :(得分:1)

假设这是一份水晶报告......

请参阅此文章。您无法对数据源进行排序,您需要让报告进行排序。

http://it.toolbox.com/blogs/coding-dotnet/sorting-the-fields-in-crystal-report-programmatically-16201

此处还包括:

http://msdn.microsoft.com/en-us/library/ms225717.aspx

答案 1 :(得分:1)

您需要将数据视图传递给Crystal而不是

中的数据表
datatable.DefaultView.Sort = "col1, col2, col3"
Dim dv As DataView = datatable.DefaultView 

myReportDocument.SetDataSource(dv)