作为选择之一,OutlookGrid支持附加函数以定义数据项如何被显示:
CollapseAll()将折叠网格中的所有分组,使得所有数据项看不见而只显示分组。
ExpandAll()将展开所有分组,显示所有分组和它们的数据项。
ClearGroups()将移走所有分组,并只显示数据项。
CollapseIcon 和 ExtendIcon属性定义了 在分组中的+ 和 –号。如果它们设置为not,+ 和 –是不会绘制的。
当然,OutlookGrid也支持所有其它众所周知的DataGridView方法和属性。
绑定数据
现在我们已看到网格是如何为绑定数据工作的,我现在将简要解释网格是如何用非绑定数据构建的。网格可以像DataGridView一样地被构建,使用Columns.Add()和Rows.Add()方法。然而,在创建行时一个异常被抛出:每一个row必须是OutlookGridRow类型!用row的CreateCells()函数在每一行中填充单元格,并添加该行到网格的Rows集合(译注:此处一定需要结合程序来看):
//首先清除然后先前的绑定(如果它们已被设置的话)
outlookGrid1.BindData(null, null);
//创建列的头(译注:即网格的表头)
outlookGrid1.Columns.Add("column1", "Id");
outlookGrid1.Columns.Add("column2", "Name");
etc...
// 然后创建行
// row 1:第1行:
OutlookGridRow row = new OutlookGridRow();
row.CreateCells(outlookGrid1, id1, name1, ...);
outlookGrid1.Rows.Add(row);
// row 2:第2行:
OutlookGridRow row = new OutlookGridRow();
row.CreateCells(outlookGrid1, id2, name2, ...);
outlookGrid1.Rows.Add(row);//etc...等等...因为我们没有潜在的数据源可以被用来排序该网格,排序必须基于网格自己的内容。这意味着在排序中,网格自身的数据项将需要被比较。用OutlookGridRowComparer对象来做这件事。这个比较对象只基于它们的字符串值比较列表中的数据项。然而,一个更容易的选择是使用可选的Sort()方法,只确定要排序的列和排序的方向(升序或降序):
// 设置被用来分组的列
outlookGrid1.GroupTemplate.Column = outlookGrid1.Columns[e.ColumnIndex];
//然后选择两个排序方法之一
//选择1:容易的方法,用OutlookGridRowComparer对象
outlookGrid1.Sort(new OutlookGridRowComparer(ColumnIndex, direction));
//选择2:更加容易的方法,确定用哪一列来排序
outlookGrid1.Sort(outlookGrid1.Columns[ColumnIndex], direction);‘代码用法’的介绍到此结束。到目前为止,基本排序和分组功能工作的相当好,甚至对于更大的数据集也是这样;比如,Invoice示例包含了超过2000个记录,但仍然在我的电脑上执行得相当棒。(本文)给出的该代码是完全用C#编写,这一点也不坏!B-)
文字:http://www.qqread.com/outlook/b350425.html进入讨论组讨论。相关专题
- Javamail写带附件eml文件并调用Outlook (0次浏览)



