当我绑定菜单项中的列时,出现以下错误. [英] getting below error when i bound columns in the menuitems.
问题描述
当我绑定菜单项中的列时,我遇到错误.
索引必须在列表的范围内.
参数名称:索引"
查看我的代码
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 removingmnuItems
fromNavigationMenu.Items
ifHome
orAdmin
are not equal to Y but nothing has been added to the menu, so you are getting an index error - theElse
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屋!