Datarepeater 控件的功能相当于用户创建的任意控件的数据绑定容器。例如,假设要创建一个包含三个 TextBox 控件和一个 Checkbox 控件的用户控件,该用户控件将用于显示雇员数据库的一条记录——显示雇员的姓名、生日、雇员编号和婚姻状况。
当控件被编译为 .ocx 后,DataRepeater 控件的 RepeatedControlName 属性被设置为用户控件,然后 DataRepeater 被绑定到某个数据源,例如 ADO 数据控件,该控件在用户控件和雇员数据库之间建立起连接。在运行时,DataRepeater 将显示用户控件的几个实例,每个控件占一行,并分别绑定到数据库的不同记录。其结果如下图所示。
雇员记录在DataRepeater控件中的重复
在运行时,用户可以使用 HOME、END、PAGEUP、PAGEDOWN 和箭头键在记录集中滚动。
可能的用途
使用 DataReoeater 控件的第一步是创建数据绑定用户控件。下面的过程创建了一个可以在DataRepeater中重复多次的简单控件。
详细信息 有关创建数据绑定用户控件的详细内容,请参阅“绑定控件到数据源”。
要创建在 DataRepeater 控件中使用的数据绑定用户控件,请按照以下步骤执行:
对象属性设置值
Text1NametxtProductName
Text2NametxtUnitPrice
Label1CaptionProduct Name
Label2CaptionUnit Price
由于用户控件会重复出现,可能需要将其高度最小化;上面描述的简单用户控件如下所示:
Public Property Get ProductName() As String ProductName = txtProductName.Text End Property Public Property Let ProductName(ByVal newProductName As String) txtProductName.Text = newProductName End Property Public Property Get UnitPrice() As String UnitPrice = txtUnitPrice.Text '
返回一个字符串!End Property
Public Property Let UnitPrice(ByVal newUnitPrice As String)
txtUnitPrice.Text = newUnitPrice ' NewUnitPrice
是一个字符串!End Property
Private Sub txtProductName_Change()
PropertyChanged "ProductName"
End Sub
Private Sub txtUnitPrice_Change()
PropertyChanged "UnitPrice"
End Sub
重点 注意,在上面的代码中,UnitPrice 属性被声明为一个字符串。这样,DataRepeater 控件的用户就能够通过 DataFormat 对象将该字符串格式化为 Currency 类型。如果将新值按照 Currency 格式(可能希望这么做)输入,那么由 DataFormat 对象提供的格式化功能将被忽略。
在“工具”菜单中单击“属性特性”。在“属性特性”对话框中,单击“高级”。“名字”框中包含了需要设置数据绑定的属性,同时也应该包含“ProductName”。单击“属性为数据绑定”,然后单击“设计时显示在 DataBindings 集合中”。单击“名字”框并单击“UnitPrice”。再次单击“属性为数据绑定”,然后单击“设计时显示在 DataBindings 集合中”。单击“确定”关闭对话框。
在将用户控件编译为 .ocx时,Visual Basic 会注册该控件,同时允许在 DataRepeater 控件中使用该控件。
一旦生成并编译了数据绑定用户控件,就可以在 DataRepeater 控件中重复使用它。
要在 DataRepeater 控件中使用数据绑定用户控件,请按照以下步骤执行:
对象属性设置值
Project1NameprjRepeater
Form1NamefrmRepeater
单击“工程”菜单上的“部件”,在“部件”对话框中,单击“控件”选项卡,选中“Microsoft 数据转发器控件”和“Microsoft ADO 数据控件”。单击“确定”关闭对话框。
SELECT * FROM Products
一旦用户控件放入 DataRepeater 控件后,就必须将用户控件的属性绑定到记录源。