长话短说,我们有一个遗留的应用程序,它显示一个基础设施网格,用户可以在其中导出网格显示。我遇到的问题是他们希望导出有一个特定的顺序,如果我在导出之前在网格视图中设置顺序,它会保留此顺序,但是如果我尝试强制它"导出",尽管尝试设置它,但它似乎不起作用。 这是我的代码 (VB),正如您在导入之前看到的那样,我尝试设置"排序指示器",但我怀疑我错过了一些东西。
Dim FileName As String
Dim I As Integer
I = 1
FileName = "C:ReconciliationReport.xls"
While System.IO.File.Exists(FileName)
FileName = "C:ReconciliationReport_" & I & ".xls"
I = I + 1
End While
grdReconciliationReport.DisplayLayout.Bands(0).Columns("ReconciliationOrder").SortIndicator = Infragistics.Win.UltraWinGrid.SortIndicator.Ascending
UltraGridExcelExporter.Export(grdReconciliationReport, FileName)
在网格导出过程中,UltraGridExcelExporter 会创建自己的布局副本。这样做完全是为了允许您在不更改实际网格的情况下对布局进行排序、隐藏、删除和任何其他操作。要按任何列对网格进行排序,您需要处理 ExportStarted 事件。事件参数包含对克隆布局的引用。您可以使用如下代码:
Private Sub UltraGridExcelExporter_ExportStarted(sender As Object, e As ExcelExport.ExportStartedEventArgs) Handles UltraGridExcelExporter1.ExportStarted
Dim sortedCol As UltraGridColumn = e.Layout.Bands(0).Columns(1)
e.Layout.Bands(0).SortedColumns.Add(sortedCol, False, False)
End Sub