在AfterCheckNode事件中:Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim ids As String
Dim nd As WinForm.TreeNode
Dim pd As WinForm.TreeNode
For Each nd In e.node.allNodes '清除子节点的选中标记
nd.Checked = False
Next
pd = e.Node.ParentNode
Do While pd IsNot Nothing '清除父节点的选中标记
pd.Checked = False
pd = pd.ParentNode
Loop
For Each nd In trv.AllNodes
pd = nd
Do While pd IsNot Nothing
If pd.Checked Then
If ids > "" Then
ids= ids & ","
End If
ids = ids & "'" & nd.name & "'"
Exit Do
Else
pd = pd.ParentNode
End If
Loop
Next
If ids > "" Then
DataTables("员工档案表").LoadFilter = "员工姓名 In (" & ids & ")and 员工状态 in('试用','在职')"
DataTables("员工档案表").Load()
End If