
此主题相关图片如下:2.png
图1 为 生成目录树的表,Dim str As String = e.Sender.Value
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim filter As String = "[目录方案] = '" & str & "' "
trv.BuildTree("目录方案", "一级目录|二级目录", filter , "顺序号,编码")
trv.ExpandAll
e.Form.Controls("TreeView1").ContextStrip = e.Form.Strips("sp")
图2 为生成的目录树
在目录树 的click事件中编写如下代码
Dim nd As WinForm.TreeNode = e.Sender.SelectedNode
Dim dr1 As DataRow = nd.DataRow
Dim p As Integer = Tables("目录方案").FindRow(dr1)
Tables("目录方案").Position = p
问题:
当选择一级节点 钢筋时, tables("目录方案")应该是 绿色箭头指示的行,而实际则是 红色箭头指示的行
也是就是 Dim dr1 As DataRow = nd.DataRow 生成节点的数据行没有找对,
请问是什么原因?

此主题相关图片如下:1.png

我是根据序号生成编号的,比如 一级目录的序号,就自动转成编号,二级目录 序号 也是从1 开始排,然后找到一级目录的序号n ,然后生成编号 n.1
那就另外再增加一个排序列,总之BuildTree里的排序列不能有重复值。或者不要在BuildTree使用这个排序列