【发布时间】:2013-10-22 16:06:57
【问题描述】:
我正在使用组合框和数据网格视图。我想要完成的(这是家庭作业)是显示一个组合框,用户可以在其中选择员工 ID。当用户选择该 ID 时,datagrid 视图显示该员工 ID 的销售额。
我遇到了各种各样的问题,所以我想重新开始并完成整个过程。我的表格相当简单。这是我到目前为止所做的,请多多包涵。
首先,我将employeeID 设置为一个组合框(来自数据源窗格上的数据源),然后拖放到我的表单中。我单击并将其设置为使用数据绑定项并将其设置为与我的数据网格视图相同的数据源。然后我为我的显示成员选择了 EmployeeID。
datagrid 视图将很好地加载并显示每个订单。 employeeID 组合框将加载多个 ID,并且存在重复的 ID,因为 ID 可以与单独的订单相关联。如果我选择一个 ID,它会隔离与该 ID 关联的订单。这就是我卡住的地方。
由于编程方式(拖放),我没有太多代码要显示,但我可以向您展示出现了什么:
Public Class EmployeeOrdersForm
Private Sub EmployeeOrdersForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'NORTHWNDDataSet.Employees' table. You can move, or remove it, as needed.
Me.EmployeesTableAdapter.Fill(Me.NORTHWNDDataSet.Employees)
'TODO: This line of code loads data into the 'NORTHWNDDataSet.Employees' table. You can move, or remove it, as needed.
Me.EmployeesTableAdapter.Fill(Me.NORTHWNDDataSet.Employees)
'TODO: This line of code loads data into the 'NORTHWNDDataSet.Employees' table. You can move, or remove it, as needed.
Me.EmployeesTableAdapter.Fill(Me.NORTHWNDDataSet.Employees)
'TODO: This line of code loads data into the 'NORTHWNDDataSet.Order_Details' table. You can move, or remove it, as needed.
Me.OrdersTableAdapter.Fill(Me.NORTHWNDDataSet.Orders)
End Sub
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
End Sub
Private Sub EmployeeIDComboBoxToolStripLabel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
结束类
有人能指出我正确的方向吗?是否可以对组合框进行排序,这样我就可以让它只显示一次employeeID,然后在单击时对订单进行排序?
谢谢,
J
【问题讨论】:
-
员工cbo的最终目的是什么?是否充当过滤器 - 当您从中选择 #6 时,只会显示您的订单?为什么要填写EmployeesTableAdapter 3 次?通常,不会显示员工 ID,因为一个人的 DB ID 是什么,真的不需要关心他们。相反,将 ID 和名称放入数据源并显示名称。他们选择名称,但您的代码实际上使用 ID 来做任何事情。
-
@Plutonix 用户可以从组合框中选择一个employeeID,然后它将排序并加载该员工的销售额。我没有意识到我填了3次。这个项目让我很头疼。我想我可以删除一些行吧。
-
当您绑定一个组合框时,您实际上是在其中存储 DataRowView 对象,您可以设置 DisplayMember 以显示名称,并将 ValueMember 设置为您的代码将使用的 ID。此外,您不限于使用表格及其列。由于这听起来 statis,您可以将 First 和 LastName Adn ID 加载到 List(of myEmp) 中,将 THOSE 放入 cbo 以便 Emp.FirstName & " " & Emp.LastName 显示,并且仍然使用 Emp.ID 过滤订单列表。您的问题非常广泛,但这应该可以帮助您入门。
标签: vb.net datagridview combobox