.net 如何在devexpress树列表中连接两个表(主详细信息)?
我有两张表:部门表和用户表。department是一个树状结构,字段PDeptID和DeptID是其键,因此我将其放入XtraTreeList组件中 用户表通过DeptAndUser表链接到Department,其中有DeptID、UserId字段 我想用Department设置树列表,当我单击Department时,右侧的网格控件将显示该部门中的所有用户.net 如何在devexpress树列表中连接两个表(主详细信息)?,.net,devexpress,master-detail,xtratreelist,.net,Devexpress,Master Detail,Xtratreelist,我有两张表:部门表和用户表。department是一个树状结构,字段PDeptID和DeptID是其键,因此我将其放入XtraTreeList组件中 用户表通过DeptAndUser表链接到Department,其中有DeptID、UserId字段 我想用Department设置树列表,当我单击Department时,右侧的网格控件将显示该部门中的所有用户 如何实现这个想法?我通常将id字段作为TreeListColumn,在对用户没有用处的情况下,我可以选择不显示它。这样,我仍然可以轻松访问我
如何实现这个想法?我通常将id字段作为TreeListColumn,在对用户没有用处的情况下,我可以选择不显示它。这样,我仍然可以轻松访问我的对象id 仅根据提供的信息就有几种可能访问与departmentId匹配的实际用户。例如,如果列表中有所有用户,则可以使用linq仅获取与树列表中所选部门匹配的用户,然后将其用于数据源 例如: VB.NET:
Private Sub TreeList1_FocusedNodeChanged(sender As Object, e As DevExpress.XtraTreeList.FocusedNodeChangedEventArgs) Handles TreeList1.FocusedNodeChanged
If e.Node IsNot Nothing Then
Dim id As Integer = CInt(e.Node.GetValue("Id"))
Dim ds As List(Of UserInfo) = (From user As UserInfo In UserList Where user.DeptId = id Select user).ToList
GridControl1.DataSource = ds
GridControl1.RefreshDataSource()
End If
End Sub
C:
如果您的部门对象实际上有一个用户列表作为属性,那么您可以直接从树列表数据源中的实例访问该列表,并将其用作网格的数据源。无论您采用何种方法获取/存储用户数据,您都可能需要处理focusedNodeChanged事件 我试试看。非常感谢!
private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
{
if (e.Node != null) {
int id = Convert.ToInt32(e.Node.GetValue("Id"));
List<UserInfo> ds = (from user in UserList where user.DeptId == id select user).ToList;
GridControl1.DataSource = ds;
GridControl1.RefreshDataSource();
}
}