Page tree
Skip to end of metadata
Go to start of metadata

数据绑定可以使一个或多个数据消费者以一种同步的方式被连接到一个数据提供商。如果你在一个数据绑定的表格上移动光标,那么连接到同一数据源的其他控件将会发生改变,以反映当前的新纪录。如果你在一个数据绑定的表格上编辑一个值,那么其他连接到同一数据源的控件将会发生改变,以反映新的值。
C1FlexGrid 控件支持将数据绑定到 ADO.NET 数据源对象,例如,数据表
DataTable、数据视图 DataView、数据集 DataSet 和数据视图管理器
DataViewManager。C1FlexGrid 也支持将数据绑定到 ComponentOne DataObjects for WinForms 组件,例如,C1Express 表、C1Express 视图、C1Express 连接、C1 数据视图 C1DataView、C1 数据表源 C1DataTableSource 和 C1 数据集 C1DataSet。
要将表格绑定到一个数据源,必须将数据源对象分配到表格的"数据源"
DataSource 属性。如果数据源对象包含多于一个的表,你还必须将"数据成员"DataMember 属性设置为一个能指定应该使用哪个表地字符串。
另外,你也可以用一个单一的 "设置数据绑定"SetDataBinding 方法的调用来同时指定两个属性。当你将一个新的数据源分配到表格,它将会将自己的列自动刷新来绑定数据源中可用的列。然后,你可以通过移动、隐藏或删除它
们来自定义这些列。你还可以设置列的属性,如它们的宽度、编辑掩码和格式。
可用的示例项目
有关一个在绑定到数据源后将表格列重新排序的例子的详细信息,请在
ComponentOne 帮助中心参阅"列顺序"示例。
有关如何创建 ADO.NET 数据源对象的更多相关详细信息,请参阅.NET
Framework 文档。
有关如何在 WinForms 中使用 ComponentOne 数据对象的更多相关详细信
息,请参阅包含在 ComponentOne Studio Enterprise 和 ComponentOne Studio for
WinForms 中的 ComponentOne DataObjects for WinForms 文档。


 绑定到数据源


无需编写一行代码,你可以通过在 Visual Studio 中使用数据源配置向导,很容易地将 C1FlexGrid 绑定到一个数据源。要访问该向导有以下两种途径,可以通过在属性窗口中选择"数据源"属性,或通过 C1FlexGrid 任务菜单中的
"选择数据源"对话框。有关 C1FlexGrid 任务菜单的更多详细信息,请参阅 "C1FlexGrid 任务菜单"(第 34 页)。
点击属性窗口中的"数据源"属性旁边的下拉箭头,或 C1FlexGrid 任务菜单上的"选择数据源" 对话框,可以允许你从一个可用数据源列表中选择,或者添加一个数据源到你的项目。要想添加一个数据源到你的项目,请单击"添加项目数据源"来打开数据源配置向导

数据源配置向导可以引导你一步步地添加数据源。"选择数据源类型"页可以使你选择你所想要用来收集信息的应用程序的类型。默认的选择是数据库。
在"选择你的数据连接"页上,你可以指定数据库的位置。如果你尚未连接到数据库的话,你可以通过点击"新建连接"按钮来指定一个新的连接。点击"新建连接"按钮,打开"添加连接对话框,在这里你可以浏览到你的数据库的位置,并测试连接。
移动设备用户请点击这里以获得更多信息。
如果你正在使用 WinFormsComponentOne FlexGrid 的移动版,请在"添加连接"对话框中,将数据源更改为一个由 Compact Framework 支持的,如
SQL Server 移动版的.NET Framework 数据提供者(.NET Framework Data Provider for SQL Server Mobile Edition)。

然后,你可以使用支持的数据库,例如,一个 SQL Server 移动版数据库。微软提供了一个 Northwind.sdf,默认情况下,它位于 C:\Program Files\Microsoft
Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v3.0 folder for Microsoft
Visual Studio 2005。
该向导可以保存和命名你在"保存连接字符串到应用程序配置文件"页面上的连接。在此页面上,你可以指定一个名称或使用该向导提供的默认。在 "选择数据库对象"页面上,你可以指定你要在"数据集"中包括的表和字段。你也可以为你的"数据集"提供一个名称或使用向导提供的默认。

该向导可以创建数据集、绑定源和表适配器,并且将它们添加到你的项目。请再次单击"数据源"属性旁边的下拉箭头或 C1FlexGrid 任务菜单上的 "选择数据源"对话框,然后选择数据源。如果你双击这个窗体,你还会发现,"窗体_加载"Form_Load 事件自动生成了用来填充数据库的代码。


 存储和检索数据


C1FlexGrid 控件,可用于绑定模式或未绑定模式。在绑定模式下,该表格连接到一个数据源,并且,来源于数据源的所有数据会显示在表格中。在这种模式下,改变表格上的数据就可以在基础数据源改变它。在未绑定模式下,表格自己管理自己的数据源。
不论是在绑定模式下或未绑定模式下,要访问 C1FlexGrid 中的数据,最简单的方法是使用行和列的索引。该索引允许你在从中可以获取或设置存储在那里的数据的行或列中指定一个单元格。
例如,下面的代码可以选择一行的第二个单元格中的数据:


  • Visual Basic


Row(2).Selected = True


  • C#



Row[2].Selected = true;



"项目"Item 属性是另一种简单的方法来访问 C1FlexGrid 中的数据。"项目"Item 属性是一个索引,它可以为行和列编纂一个索引,并获取或设置单元格中所存储的数据。(你还可以使用列名称作索引)。
例如,下面的代码可以将行数字存储在第一个表格列:



  • Visual Basic


Dim r As Integer
For r = _flex.Rows.Fixed To _flex.Rows.Count - 1
_flex(r, 0) = r
Next


  • C#




for (int r = _flex.Rows.Fixed; r <= _flex.Rows.Count - 1; r++)
{

_flex[r, 0] = r;


}




当你指定一个值到一个单元格,该表格会试图将这个值转换成列的指定的数据类型。如果该转换失败的话,表格会触发"表格错误"GridError 事件,但并不会改变单元格。你可以通过使用"设置数据"SetData 方法来重写此行为,并且将"强制"coerce 参数设置为""。
当你使用索引检索数据的时候,表格可以使单元格中存储的实际数据返回。要想检索一个包含数据格式化版本的字符串(表格向用户显示的内容),请使用"获取数据显示"GetDataDisplay 方法。你还可以通过使用 Clip 属性来设置和检索所选中的内容。此属性在处理剪贴板和拖放操作方面是特别有用的。在默认情况下,Clip 属性可以使一个包含制表符(CHR(9))的字符串返回到单元格与单元格之间,并且使含有回车符(CHR(13))返回到行与行之间。
要想使用不同的分隔符,请改变"片段分离"ClipSeparators 属性。
最后,你可以通过使用"单元格区域"对象(第 45 页)来设置和检索任意单元格区域内的内容。

  • No labels