1

我有一个超网格数据表,其中包含两列或三列,这些列将根据查看报告的人员而经常更改。我想知道是否可以存储过滤器,以便如果一个人想要状态 -> 已付款,日期 -> 今日,状态 -> 未发送作为过滤器,它可能是预先确定的单击而不是设置每个字段?

4

1 回答 1

2

您可以通过保存 UltraGrid 布局来完成此操作。下面的示例将布局保存到文件中,但您也可以使用该文件将其保存在数据库记录中。

尝试使用 PropertyCategories,但注意不要将数据保存在网格上。

    private void btnSaveLayout_Click ( object sender, EventArgs e ) {
        // show dialog to choose file
        if ( saveFileDialog1.ShowDialog ( this ) == DialogResult.OK ) {
            // open file stream
            System.IO.FileStream fileLayout = new System.IO.FileStream ( saveFileDialog1.FileName, System.IO.FileMode.OpenOrCreate );
            // reset position
            fileLayout.Seek ( 0, System.IO.SeekOrigin.Begin );
            // write layout
            this.ultraGrid.DisplayLayout.Save ( fileLayout,
                Infragistics.Win.UltraWinGrid.PropertyCategories.AppearanceCollection
                | Infragistics.Win.UltraWinGrid.PropertyCategories.ColumnFilters
                | Infragistics.Win.UltraWinGrid.PropertyCategories.Groups
                | Infragistics.Win.UltraWinGrid.PropertyCategories.SortedColumns
                | Infragistics.Win.UltraWinGrid.PropertyCategories.Summaries
                | Infragistics.Win.UltraWinGrid.PropertyCategories.ColScrollRegions
            );
            // close stream
            fileLayout.Close ();
        }
    }

    private void btnLoadLayout_Click ( object sender, EventArgs e ) {
        // show dialog to choose file
        if ( openFileDialog1.ShowDialog ( this ) == DialogResult.OK ) {
            // open file stream
            System.IO.FileStream fileLayout = new System.IO.FileStream ( openFileDialog1.FileName, System.IO.FileMode.Open );
            // reset position
            fileLayout.Seek ( 0, System.IO.SeekOrigin.Begin );
            // load layout
            this.ultraGrid.DisplayLayout.Load ( fileLayout,
                Infragistics.Win.UltraWinGrid.PropertyCategories.AppearanceCollection
                | Infragistics.Win.UltraWinGrid.PropertyCategories.ColumnFilters
                | Infragistics.Win.UltraWinGrid.PropertyCategories.Groups
                | Infragistics.Win.UltraWinGrid.PropertyCategories.SortedColumns
                | Infragistics.Win.UltraWinGrid.PropertyCategories.Summaries
                | Infragistics.Win.UltraWinGrid.PropertyCategories.ColScrollRegions
            );
            // close stream
            fileLayout.Close ();
        }
    }

在提交布局保存之前,您还可以考虑检查 SaveLayout 方法,以确保网格内实际上有任何数据。

于 2012-12-13T20:31:36.497 回答