当我绑定菜单项中的列时,出现以下错误. [英] getting below error when i bound columns in the menuitems.

查看:83
本文介绍了当我绑定菜单项中的列时,出现以下错误.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



当我绑定菜单项中的列时,我遇到错误.

索引必须在列表的范围内.
参数名称:索引"

查看我的代码

Dim mnuItems As New MenuItem()
       Conn.Open()
       StrQry = ""
       StrQry = " Select isnull(Adm,'''') as Adm,isnull(Home,'''') as Home,"
       StrQry &= " isnull(Note,'''') as Notes from tab1"
       Cmd.Connection = Conn
       Cmd.CommandText = StrQry
       Rdr = Cmd.ExecuteReader
       If Rdr.HasRows Then
           While Rdr.Read
              If Rdr("Home") = "Y" Then
                   mnuItems.NavigateUrl = "~\Home.aspx"
                     mnuItems.Text = "Home"
                   NavigationMenu.Items.Add(mnuItems)
              End If
               If Rdr("Adm") = "Y" Then
                   mnuItems.NavigateUrl = "~\Adm.aspx"
                   mnuItems.Text = "Adm"
                    NavigationMenu.Items.Add(mnuItems)

               End If
           End While
       End If
       Rdr.Close()
       Conn.Close()
   End Sub


进入第二个Rdr("Adm")时出错-> NavigationMenu.Items.Add(mnuItems)

添加...时第二个菜单项中有什么问题?

解决方案

而在Rdr.Read中
                        NavigationMenu.Items.Clear()


您总是会清除菜单!

如果您的代码

 如果 Rdr(" )=   Y" " 
                             mnuItems.Text = " 
                             NavigationMenu.Items.Add(mnuItems)
                       其他
                             NavigationMenu.Items.Remove(mnuItems)


不是Y,则您需要删除不存在的菜单项.

最好进行调试,看看错误出现在哪一行. Y ,但菜单中未添加任何内容,因此您遇到了索引错误-Else块是多余的


 NavigationMenu. Items.Clear()
Conn.Open()
StrQry = " 
StrQry = " 
StrQry& = " 
Cmd.Connection =连接
Cmd.CommandText = StrQry
Rdr = Cmd.ExecuteReader
如果 Rdr.HasRows 然后
      同时阅读
            如果 Rdr(" )= "  然后
                   Dim  mnuItems  As   New  MenuItem()
                  mnuItems.NavigateUrl = " 
                  mnuItems.Text = " 
                  NavigationMenu.Items.Add(mnuItems)
            其他 如果 Rdr(" 管理员")=   Y" 然后
                   Dim  mnuItems  As   New  MenuItem()
                  mnuItems.NavigateUrl = " 
                  mnuItems.Text = " 
                  NavigationMenu.Items.Add(mnuItems)
            结束 如果
      结束 同时
结束 如果
Rdr.Close()
Conn.Close()
结束  


Hi,

I am getting below error when i bound columns in the menuitems.

"Index must be within the bounds of the List.
Parameter name: index"

See my code

Dim mnuItems As New MenuItem()
       Conn.Open()
       StrQry = ""
       StrQry = " Select isnull(Adm,'''') as Adm,isnull(Home,'''') as Home,"
       StrQry &= " isnull(Note,'''') as Notes from tab1"
       Cmd.Connection = Conn
       Cmd.CommandText = StrQry
       Rdr = Cmd.ExecuteReader
       If Rdr.HasRows Then
           While Rdr.Read
              If Rdr("Home") = "Y" Then
                   mnuItems.NavigateUrl = "~\Home.aspx"
                     mnuItems.Text = "Home"
                   NavigationMenu.Items.Add(mnuItems)
              End If
               If Rdr("Adm") = "Y" Then
                   mnuItems.NavigateUrl = "~\Adm.aspx"
                   mnuItems.Text = "Adm"
                    NavigationMenu.Items.Add(mnuItems)

               End If
           End While
       End If
       Rdr.Close()
       Conn.Close()
   End Sub


Error getting in the Second Rdr("Adm") --> NavigationMenu.Items.Add(mnuItems)

What is the problem in the second menu items when adding...?

解决方案

While Rdr.Read
                        NavigationMenu.Items.Clear()


you always clear your menu!

and if your code

If Rdr("Home") = "Y" Then
                             mnuItems.NavigateUrl = "~\Home.aspx"
                             mnuItems.Text = "Home"
                             NavigationMenu.Items.Add(mnuItems)
                       Else
                             NavigationMenu.Items.Remove(mnuItems)


is not Y then you wnat to delete a non existing menuitem.

Better do a debug and see in what line the error comes up.


You are removing mnuItems from NavigationMenu.Items if Home or Admin are not equal to Y but nothing has been added to the menu, so you are getting an index error - the Else blocks are redundant


NavigationMenu.Items.Clear()
Conn.Open()
StrQry = ""
StrQry = " Select isnull(Admin,'') as Admin,isnull(Home,'') as Home,"
StrQry &= " isnull(Note,'') as Notes from tab1"
Cmd.Connection = Conn
Cmd.CommandText = StrQry
Rdr = Cmd.ExecuteReader
If Rdr.HasRows Then
      While Rdr.Read
            If Rdr("Home") = "Y" Then
                  Dim mnuItems As New MenuItem()
                  mnuItems.NavigateUrl = "~\Home.aspx"
                  mnuItems.Text = "Home"
                  NavigationMenu.Items.Add(mnuItems)
            Else If Rdr("Admin") = "Y" Then
                  Dim mnuItems As New MenuItem()
                  mnuItems.NavigateUrl = "~\Admin.aspx"
                  mnuItems.Text = "Admin"
                  NavigationMenu.Items.Add(mnuItems)
            End If
      End While
End If
Rdr.Close()
Conn.Close()
End Sub


这篇关于当我绑定菜单项中的列时,出现以下错误.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆