Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
Dim dt As datatable = DataTables("单位树")
Dim dt2 As list(of DataRow)
Dim tr As WinForm.TreeView
Dim nd As WinForm.TreeNode
tr = e.Form.Controls("TreeView1")
dt2 = dt.Select(" [标题id] Like '??' ")
For Each dr1 As DataRow In dt2
Dim str2 As String = dr1("标题id")
Dim str3 As String = dr1("标题")
nd = Tr.Nodes.Add(str2,str3)
dt2 = dt.Select("[标题id] like '"& str2 &"?? ' ")
For Each dr2 As DataRow In dt2
str2 = dr2("标题ID")
str3 = dr2("标题")
nd.Nodes.Add(str2,str3)
dt2 =dt.Select("[标题id] like '"& str2 &"?? ' ")
Next
Next
下载信息 [文件大小: 下载次数: ] | |
![]() |
?不能作为通配符吧,你测试一下:
tr = e.Form.Controls("TreeView1")
dt2 = dt.Select(" [标题id] Like '??' ")
Messagebox.show(dt2.Count)
就会发现dt2的行数为0
?不能作为通配符吧,你测试一下:
tr = e.Form.Controls("TreeView1")
dt2 = dt.Select(" [标题id] Like '??' ")
Messagebox.show(dt2.Count)
就会发现dt2的行数为0
如果只想筛选出只有两个字符的数据记录,代码要怎么写呀
并非要用Select的,在命令窗口执行:
For Each dr As DataRow In DataTables("单位树").DataRows
dr("标题id") = dr("标题id").Trim()
Next
For Each dr1 As DataRow In DataTables("单位树").DataRows
If dr1("标题id").Length = 2 Then
Output.Show(dr1("标题id"))
For Each dr2 As DataRow In DataTables("单位树").DataRows
If dr2("标题id").StartsWith(dr1("标题id")) AndAlso dr2("标题id").Length = 4 Then
Output.Show(dr2("标题id"))
For Each dr3 As DataRow In DataTables("单位树").DataRows
If dr3("标题id").StartsWith(dr2("标题id")) AndAlso dr3("标题id").Length = 6 Then
Output.Show(dr3("标题id"))
End If
Next
End If
Next
End If
Next
其实这一段多余:
For Each dr As DataRow In DataTables("单位树").DataRows
dr("标题id") = dr("标题id").Trim()
Next
之所以加上,是因为你输入不够严谨,标题ID后面都输入了空格的,01的长度不是2,而是3,后面有空格了。
领导如果这一则案例treeview 下一级是“无限延伸”(用户定义了三级,或者5级),那么如何生成呢。比如“华海仓库管理”中的参数设置窗口---单位树treeview,就是无限性的 延伸下级,同时又能根据数据记录生成treeview这个目录树
你就按照上面的代码,给他来个10级,代码也没有多长的。
10级的目录够深了。
这是一个任意层数的,不过一般用户理解起来比较困难:
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode
For Each dr As DataRow In DataTables("单位树").DataRows
dr("标题id") = dr("标题id").Trim()
Next
tr.Nodes.Clear
Dim drs As List(of DataRow)
drs = DataTables("单位树").Select("", "标题ID")
For i As Integer = 0 To drs.Count -1
If drs(i)("标题id").Length = 2 Then
nd = tr.nodes.Add(drs(i)("标题id"), drs(i)("标题id"))
Elseif drs(i)("标题id").StartsWith(drs(i-1)("标题id")) Then
nd = nd.nodes.Add(drs(i)("标题id"), drs(i)("标题id"))
Else
Do While True
nd = nd.ParentNode
If drs(i)("标题id").StartsWith(nd.Name)
nd = nd.nodes.Add(drs(i)("标题id"), drs(i)("标题id"))
Exit Do
End If
Loop
End If
Next
删除节点又出了新的情况:
还是这一例,我使用了M版的方案,treeview生成了,但是删除节点又出了新的情况
Dim tr As WinForm.TreeView
Dim nd As WinForm.TreeNode
tr = Forms("参数设置").Controls("TreeView1")
nd = tr.SelectedNode
If MsgBox("确认删除类型:" & nd.text & " ?",65,"提示") = 1 Then
Dim b As String = nd.Name
b = b & "*"
DataTables("单位树").DeleteFor("[标题id] like '"& b &"' ")
nd.Remove
End If
实际没有删除、