演练:在 DataRepeater 控件中显示数据 (Visual Studio)
更新: 2008 年 7 月
本演练提供了用于在 DataRepeater 控件中显示绑定数据的完整基本方案。
系统必备
本演练需要 Northwind 示例数据库。
如果没有在开发计算机中安装此数据库,可以从 Microsoft Download Center(Microsoft 下载中心)进行下载。有关说明,请参见下载示例数据库 (LINQ to SQL)。
概述
本演练的第一部分主要有以下四个任务:
创建解决方案。
添加 DataRepeater 控件。
添加数据源。
添加数据绑定控件。
说明: |
---|
对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您使用的 Visual Studio 版本及设置。有关更多信息,请参见Visual Studio 设置。 |
创建 DataRepeater 解决方案
在第一步中,创建项目和解决方案。
创建 DataRepeater 解决方案
在 Visual Studio“文件”菜单上单击“新建项目”。
在“新建项目”对话框中的“项目类型”窗格中,展开“Visual Basic”,然后单击“Windows”。
在“模板”窗格中,单击“Windows 窗体应用程序”。
在“名称”框中键入 DataRepeaterApp。
单击“确定”。
Windows 窗体设计器即会打开。
在“Windows 窗体设计器”中选择窗体。在“属性”窗口中,将“Size”属性设置为 800, 700。
添加 DataRepeater 控件
在此步骤中,您将向窗体中添加一个 DataRepeater 控件。
添加 DataRepeater 控件
在“视图”菜单上单击“工具箱”。
将打开“工具箱”。
选择“Visual Basic PowerPacks”选项卡。
将 DataRepeater 控件拖到“Form1”上。
在“属性”窗口中,将“Location”属性设置为 0, 25。
将“Size”属性设置为 460, 600。
添加数据源
在此步骤中,您将为 DataRepeater 控件添加一个数据源。
添加数据源
在“数据”菜单上单击“显示数据源”。
在“数据源”窗口中,单击“添加新数据源”。
在“选择数据源类型”页上选择“数据库”,然后单击“下一步”。
在“选择您的数据连接”页上执行下列步骤之一:
如果下拉列表中包含与 Northwind 示例数据库的数据连接,请单击该连接。
- 或 -
单击“新建连接”来配置新的数据连接。有关更多信息,请参见如何:创建与 SQL Server 数据库的连接。
如果数据库需要密码,请选择该选项以包括敏感数据,再单击“下一步”。
说明: 如果出现一个对话框,请单击“是”将该文件保存到您的项目中。
单击“将连接字符串保存到应用程序配置文件”页上的“下一步”。
在“选择数据库对象”页面上展开“表”节点。
选中“Customers”和“Orders”表旁边的复选框,然后单击“完成”。
“NorthwindDataSet”即添加到您的项目中,并且“Customers”和“Orders”表显示在“数据源”窗口中。
添加数据绑定控件
在此步骤中,您将向 DataRepeater 中添加数据绑定控件。
添加数据绑定控件
在“数据源”窗口中,选择“Customers”表的顶级节点。
通过单击表节点上的下拉列表中的“Details”将该表的下拉类型更改为“Details”。
选择“Customers”表节点,将它拖到 DataRepeater 控件的项模板区域(上半部分区域)。
一个 BindingNavigator 控件添加到窗体中,并且“NorthwindDataSet”、“CustomersBindingSource”、“CustomersTableAdapter”、“TableAdapterManager”和“CustomersBindingNavigator”组件添加到组件栏中。
选择所有字段及其关联标签,并将它们置于项模板区域左边缘附近。
选择后五个字段(“Region”、“Postal Code”、“Country”、“Phone”和“Fax”)及其关联标签,并将它们上移到前六个字段的右侧。
选择项模板(控件的上半部分区域)。
在“属性”窗口中,将“Size”属性设置为 427, 170。
此时,您就得到了一个有效的应用程序,该应用程序将显示客户的重复列表。可以按 F5 运行该应用程序、更改数据以及添加或删除客户记录。
在可选的后续步骤中,您将学习如何自定义 DataRepeater 控件。
后续步骤(可选)
演练的本部分有以下四个可选任务:
更改 DataRepeater 控件的外观。
防止用户添加或删除记录。
向 DataRepeater 控件添加搜索功能。
向 DataRepeater 控件添加主表和详细信息表。
更改 DataRepeater 控件的外观
在此可选步骤中,您将在设计时更改 DataRepeater 控件的 BackColor。您还将添加代码来以交替颜色显示行以及有条件地更改标签的 ForeColor。
更改控件的外观
在 Windows 窗体设计器中,选择 DataRepeater 控件的主(下半部分)区域。
在“属性”窗口中,将 BackColor 属性设置为白色。
双击 DataRepeater 打开代码编辑器。
在代码编辑器中,在“事件”下拉列表中单击“DrawItem”。
在 DrawItem 事件处理程序中添加下面的代码为 BackColor 提供一个交替值:
' Alternate the back color. If (e.DataRepeaterItem.ItemIndex Mod 2) <> 0 Then ' Apply the secondary back color. e.DataRepeaterItem.BackColor = Color.AliceBlue Else ' Apply the default back color. e.DataRepeaterItem.BackColor = DataRepeater1.BackColor End If
// Alternate the back color. if ((e.DataRepeaterItem.ItemIndex % 2) != 0) // Apply the secondary back color. { e.DataRepeaterItem.BackColor = Color.AliceBlue; } else { // Apply the default back color. e.DataRepeaterItem.BackColor = dataRepeater1.BackColor; }
在 DrawItem 事件处理程序中添加下面的代码,以根据条件更改某个标签的 ForeColor:
If e.DataRepeaterItem.Controls(RegionTextBox.Name).Text _ = "" Then e.DataRepeaterItem.Controls("RegionLabel"). _ ForeColor = Color.Red Else e.DataRepeaterItem.Controls("RegionLabel"). _ ForeColor = Color.Black End If
if (e.DataRepeaterItem.Controls[regionTextBox.Name].Text == "") { e.DataRepeaterItem.Controls["regionLabel"].ForeColor = Color.Red; } else { e.DataRepeaterItem.Controls["regionLabel"].ForeColor = Color.Black; }
按 F5 运行该应用程序并查看自定义的效果。
防止用户添加或删除记录
在此可选步骤中,您将添加代码来防止用户在 DataRepeater 控件中添加或删除记录。
防止用户添加和删除记录
在 Windows 窗体设计器中双击窗体打开代码编辑器。
将下面的代码添加到 Form_Load 事件中:
DataRepeater1.AllowUserToAddItems = False DataRepeater1.AllowUserToDeleteItems = False BindingNavigatorAddNewItem.Enabled = False CustomersBindingSource.AllowNew = False BindingNavigatorDeleteItem.Enabled = False
dataRepeater1.AllowUserToAddItems = false; dataRepeater1.AllowUserToDeleteItems = false; bindingNavigatorAddNewItem.Enabled = false; customersBindingSource.AllowNew = false; bindingNavigatorDeleteItem.Enabled = false;
在“类名”下拉列表中单击“BindingNavigatorDeleteItem”。在“方法名称”下拉列表中单击“EnabledChanged”。
将以下代码添加到 BindingNavigatorDeleteItem_EnabledChanged 事件处理程序中:
If BindingNavigatorDeleteItem.Enabled = True Then BindingNavigatorDeleteItem.Enabled = False End If
if (bindingNavigatorDeleteItem.Enabled == true) { bindingNavigatorDeleteItem.Enabled = false; }
说明: 此步骤是必需的,因为每当当前记录发生更改时,BindingSource 都将启用“删除项”按钮。
按 F5 运行该应用程序。请注意,“删除项”按钮被禁用,您无法通过按 Delete 键来删除项。
向 DataRepeater 控件添加搜索功能
在此可选步骤中,您将实现在 DataRepeater 控件中搜索值的功能。如果找到了搜索字符串,该控件将选中包含该值的项并将该项滚动到视图中。
添加搜索功能
从“工具箱”中将 TextBox 控件拖到包含 DataRepeater 控件的窗体中。
将它置于 DataRepeater 控件的下方。
在“属性”窗口中,将“Name”属性更改为“搜索文本框”。
从“工具箱”中将 Button 控件拖到包含 DataRepeater 控件的窗体中。将它置于 DataRepeater 控件的下方。
在“属性”窗口中,将“Name”属性更改为“搜索按钮”。将“Text”属性更改为“搜索”。
双击 Button 控件打开代码编辑器,并将下面的代码添加到 SearchButton_Click 事件处理程序中。
Dim foundIndex As Integer Dim searchString As String searchString = SearchTextBox.Text ' Search for the string in the CustomerID field. foundIndex = CustomersBindingSource.Find("CustomerID", _ searchString) If foundIndex > -1 Then DataRepeater1.CurrentItemIndex = foundIndex Else MsgBox("Item " & searchString & " not found.") End If
int foundIndex; string searchString; searchString = searchTextBox.Text; // Search for the string in the CustomerID field. foundIndex = customersBindingSource.Find("CustomerID", searchString); if (foundIndex > -1) { dataRepeater1.CurrentItemIndex = foundIndex; } else { MessageBox.Show("Item " + searchString + " not found."); }
按 F5 运行该应用程序。在“搜索文本框”中键入一个客户 ID 并单击“搜索”按钮。
向 DataRepeater 添加主表和详细信息表
在此可选步骤中,您将再添加一个 DataRepeater 控件来显示每个客户的相关订单。
添加主表和详细信息表
从“工具箱”的“Visual Basic PowerPacks”选项卡中再将一个 DataRepeater 控件拖到窗体中。
在“属性”窗口中,将“Location”属性设置为 465, 25。
将“Size”属性设置为 315, 600。
在“数据源”窗口中,展开“Customers”表节点,然后选择“Orders”表的详细信息节点。
通过单击该表节点上的下拉列表中的“Details”将此“Orders”表的下拉类型更改为“Details”。
将该“Orders”表节点拖到第二个 DataRepeater 控件的项模板区域(上半部分区域)。
“OrdersBindingSource”组件和“OrdersTableAdapter”组件即添加到组件栏中。
按 F5 运行该应用程序。当您在第一个 DataRepeater 控件中选择某个客户时,该客户的订单会显示在第二个 DataRepeater 控件中。
请参见
任务
如何:在 DataRepeater 控件中显示绑定数据 (Visual Studio)
如何:在 DataRepeater 控件中显示未绑定的数据 (Visual Studio)
如何:更改 DataRepeater 控件的布局 (Visual Studio)
如何:在 DataRepeater 控件中显示项标题 (Visual Studio)
如何:在 DataRepeater 控件中搜索数据 (Visual Studio)
如何:使用两个 DataRepeater 控件创建主/详细信息窗体 (Visual Studio)
如何:更改 DataRepeater 控件的外观 (Visual Studio)
如何:禁止添加和删除 DataRepeater 项 (Visual Studio)
DataRepeater 控件疑难解答 (Visual Studio)
概念
DataRepeater 控件简介 (Visual Studio)
修订记录
日期 |
历史记录 |
原因 |
---|---|---|
2008 年 7 月 |
新增主题。 |
SP1 功能更改。 |