1

私は、レポートを見ている人に応じて頻繁に変更される2つまたは3つの列を持つウルトラグリッドデータテーブルを持っています。フィルターを保存して、ステータス->支払い済み、日付->今日、ステータス->未送信をフィルターとして使用したい場合は、各フィールドを設定する代わりに、ワンクリックで事前に決定できるようにすることができるかどうか疑問に思いました。

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 に答える