呵呵,老师们也帮我看下这个问题。分页加载前点选目录树的复选框筛选正常,但在窗体的登录事件中加了分页加载的代码后,点选目录树的复选框就会出现楼主同样的错误提示,点目录树最上边的“全部”复选框筛选是正常的。
窗口登录的代码如下:
'-------------加载目录树-------------
Dim tv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim dt As DataTable
Dim s As String
Dim flt As String
dt = DataTables("基层法律服务机构信息表")
tv.BuildTree(dt,"主管司法局|法律服务所","","序号")
If tv.Nodes.Count > 0 Then
tv.Nodes.Insert("全部","全部(" & dt.Compute("Count(法律服务所)") & "个)",0)
End If
For Each nd As WinForm.TreeNode In tv.AllNodes
's = e.Form.Controls("维护内容").Text
If nd.Name <> "全部" Then
Select Case nd.Level
Case 0
nd.Text = nd.text & "(" & dt.Compute("Count(法律服务所)","主管司法局 = '" & nd.DataRow("主管司法局") & "'") & "个)"
' Case 1
'nd.Text = nd.text & "(" & dt.Compute("Sum(订单数)","年 = " & Year & " And 月 = " & Month) & "条)"
'nd.Text = nd.text & "(" & dt.(count(法律服务所)"," nd.DataRow("主管司法局") = nd.ParentNode.Name And nd.DataRow("法律服务所")=nd.Name") & "条)"
End Select
If nd.Name = nd.DataRow("法律服务所") Then
nd.Text = nd.Name
End If
End If
Next
'----------------------分页加载------------------
With DataTables("基层法律服务机构信息表")
.LoadFilter = "" '清除加载条件
.LoadPage = 0 '加载第一页
.LoadTop = 5 '每页5行
.Load()
e.Form.Controls("TextBox3").Value = 1 & "/" & .TotalPages
End With
目录树节点的AfterCheckNode事件的代码如下:
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
Dim nd As WinForm.TreeNode
Dim pd As WinForm.TreeNode
Dim notchecked As Integer
Dim t As Table
t = Tables("基层法律服务机构信息表")
If e.Node.Name = "全部" Then
If e.Node.Checked = True Then
For Each nd In trv.AllNodes
If nd.Name <> "全部" Then
nd.Checked = False
End If
Next
t.Filter = ""
Else
For Each nd In trv.AllNodes
nd.Checked = False
Next
t.Filter = (1 = 2)
End If
trv.CollapseAll
Return
Else
trv.AllNodes(0).Checked = False
End If
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
If nd.Checked Then
Dim vals As String = ""
If vals > "" Then
vals = vals & " And "
Select Case e.Node.Level
Case 0
vals &= "主管司法局= '" & nd.DataRow("主管司法局") & "'"
Case 1
vals &= "主管司法局='" & nd.DataRow("主管司法局") & "' and 法律服务所= '" & nd.DataRow("法律服务所") & "'"
End Select
Else
vals=vals
Select Case e.Node.Level
Case 0
vals &= "主管司法局= '" & nd.DataRow("主管司法局") & "'"
Case 1
vals &= "主管司法局='" & nd.DataRow("主管司法局") & "' and 法律服务所= '" & nd.DataRow("法律服务所") & "'"
End Select
If flt > "" Then
flt = flt & " Or (" & vals & ")"
Else
flt = vals
End If
notchecked + = 1
End If
End If
Next
If flt > "" AndAlso notchecked > 0 Then
t.Filter = flt
Else
t.Filter = (1 = 2)
End If