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