关于TreeView的问题(数据过滤后取不到数据)

这个是数据结构

ModuleID ModuleName ModulePage ModuleParent ModuleOrder
1 字典管理   1 0
2 身份管理 b.aspx 1 1
3 用户管理 3 0
4 新增用户 a.aspx 3 1


ModuleID--模块ID,自动增长
ModuleName--名称
ModulePage--页面
ModuleParent--与ModuleID相对应
ModuleOrder--,如果为0时为根节点,否则为子节点(两级就可以了)


VB.NET code
   
   
Dim MyDR As SqlDataReader = MyCommand.ExecuteReader() MyDS.Load(MyDR, LoadOption.OverwriteChanges, New String () { " Module " }) Dim DV As DataView = MyDS.Tables( 0 ).DefaultView DV.RowFilter = " ModuleOrder=0 " If DV.Count > 0 Then For i As Integer = 0 To DV.Count - 1 Dim TV As TreeNode = New TreeNode With TV .Text = DV.Item(i).Item( " ModuleName " ) .Value = DV.Item(i).Item( " ModuleID " ) .Expanded = False End With TreeView1.Nodes.Add(TV)
   
   
'这里开始有问题 Dim DVP As DataView = MyDS.Tables( 0 ).DefaultView DVP.RowFilter = " ModuleOrder<>0 AND ModuleParent= " & _ DV.Item(i).Item( " ModuleID " ).ToString() If DVP.Count > 0 Then For j As Integer = 0 To DVP.Count - 1 Dim TVP As TreeNode = New TreeNode With TVP .Text = DVP.Item(j).Item( " ModuleName " ) .Value = DVP.Item(j).Item( " ModuleParent " ) .NavigateUrl = DVP.Item(j).Item( " ModulePage " ).ToString() .Target = " _New " End With TV.ChildNodes.Add(TVP) Next End If Next End If
只能显示第一个节点及其子节点,错误信息如下: 

System.IndexOutOfRangeException: 索引 1 不是为负数,就是大于行数。 在 System.Data.DataView.GetElement(Int32 index) 在 System.Data.DataView.get_Item(Int32 recordIndex) 在 _Default.FillData() 位置 D:/Programme/WEB/XFMIS/Default.aspx.vb:行号 62
 
后面将代码改成如下,问题解决。
 
Dim DVP As DataRow() = MyDS.Tables(0).Select("ModuleOrder <>0 " & _
                    " AND ModuleParent=" & DV.Item(i).Item("ModuleID").ToString())

                    If DVP.Length > 0 Then

                        For j As Integer = 0 To DVP.Length - 1

                            Dim TVP As TreeNode = New TreeNode

                            With TVP
                                .Text = DVP(j).Item("ModuleName")
                                .Value = DVP(j).Item("ModuleParent")
                                .NavigateUrl = DVP(j).Item("ModulePage").ToString()
                                .Target = "_New"
                            End With

                            TV.ChildNodes.Add(TVP)

                        Next

                    End If
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值