菜单控件无法正常工作 [英] Menu control not working properly
问题描述
我正在使用菜单控件,并且想根据我的sql条件隐藏菜单.
最初,我在设计模式下加载所有菜单.
在页面加载时,根据我的sql条件,我从列表中删除了菜单.
我想,当我删除主菜单中的一个菜单时,整个主菜单和主子菜单都应该消失.
当我删除交易中的一个菜单时,整个交易和子交易菜单都应该消失.
怎么做..
看到我的代码
------------
ASPX页面
----------
Hi,
I am using menu control and i want to hide the menu''s based on my sql condition.
Initially i am loading all the menu''s in the design mode.
while page load and based on my sql condition i am removing the menu''s from the list.
I want, when i remove one menu in master then the entire master and master child menu should be disappear.
When i remove one meni in transaction then entire transaction and child transaction menu should be disappear.
how to do this..
see my code
------------
ASPX Page
----------
<div id="menu" class="nav">
<asp:Menu ID="NavigationMenu" runat="server" Orientation="Horizontal" RenderingMode="List">
<Items>
<asp:MenuItem NavigateUrl="~/Home.aspx" Text="Home" Value="Home" />
<asp:MenuItem Text="Master" Value="Master">
<asp:MenuItem Text="Master_Child1" Value="Master_Child1"></asp:MenuItem>
<asp:MenuItem Text="Master_Child2" Value="Master_Child2"></asp:MenuItem>
<asp:MenuItem Text="Master_Child3" Value="Master_Child3"></asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="Transaction" Value="Tran">
<asp:MenuItem Text="Tran_Child1" Value="Tran_Child1"></asp:MenuItem>
<asp:MenuItem Text="Tran_Child2" Value="Tran_Child2"></asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="Reports" Value="Report">
<asp:MenuItem Text="Reports" Value="Reports"></asp:MenuItem>
<asp:MenuItem Text="Report_Child1" Value="Report_Child1"></asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem NavigateUrl="~/Others.aspx" Text="Others" Value="Others" />
</Items>
</asp:Menu>
</div>
ASPX.VB代码
-------------
--------------
ASPX.VB Code
-------------
--------------
NavigationMenu.Items.Clear()
Conn.Open()
StrQry = ""
StrQry = " Select isnull(Home,'') as Admin,isnull(Master_Child1,'') as Master_Child1,isnull(Master_Child2,'') as Master_Child2,"
StrQry &= " isnull(Tran_Child1,'') as Tran_Child1,isnull(Tran_Child2,'') as Tran_Child2,"
StrQry &= " isnull(Report_Child1,'') as Report_Child1,isnull(Report_Child2,'') as Report_Child2,"
StrQry &= " isnull(Others,'') as Others"
Cmd.Connection = Conn
Cmd.CommandText = StrQry
Rdr = Cmd.ExecuteReader
If Rdr.HasRows Then
While Rdr.Read
If Rdr("Home") = "N" Then
Dim mnuItems As New MenuItem()
NavigationMenu.Items.Remove(mnuItems)
End If
If Rdr("Master_Child1") = "N" Then
Dim mnuItems As New MenuItem()
NavigationMenu.Items.Remove(mnuItems)
End If
If Rdr("Master_Child2") = "N" Then
Dim mnuItems As New MenuItem()
NavigationMenu.Items.Remove(mnuItems)
End If
---------------
---------------
---------------
---------------
End While
End if
How to disappear the parent and child menu while all the child menu do not have rights...?
推荐答案
设置Selectable&启用的属性为false.
在一种情况下,我的用户根据其部门拥有权限.
我创建了一个表User_Rights.他们创建了一个字段Module_Name.此字段中的值类似于菜单项的值.
这是代码
Dim i As Integer = 0
当我< Menu1.Items.Count
如果Menu1.Items(i).ChildItems.Count> 0然后
Dim j As Integer = 0
对于j = 0到Menu1.Items(i).ChildItems.Count-1
如果Menu1.Items(i).ChildItems(j).ChildItems.Count> 0然后
Dim k As Integer = 0
当k < Menu1.Items(i).ChildItems(j).ChildItems.Count
iRow = 0
bFound =假
对于iRow = 0到dt.Rows.Count-1
drow = dt.Rows(iRow)
如果drow("Module_Name")= Menu1.Items(i).ChildItems(j).ChildItems(k).Value.ToString()然后
bFound =真实
退出
如果结束
下一个
如果bFound = False,则
Menu1.Items(i).ChildItems(j).ChildItems(k).Enabled = False
Menu1.Items(i).ChildItems(j).ChildItems(k).Selectable = False
如果结束
k = k + 1
循环
其他
iRow = 0
bFound =假
对于iRow = 0到dt.Rows.Count-1
drow = dt.Rows(iRow)
如果drow("Module_Name")= Menu1.Items(i).ChildItems(j).Value.ToString然后
bFound =真实
退出
如果结束
下一个
如果bFound = False,则
Menu1.Items(i).ChildItems(j).Enabled = False
Menu1.Items(i).ChildItems(j).Selectable = False
如果结束
如果结束
下一个
如果结束
我+ = 1
结束时
Set the Selectable & Enabled property false.
I had one situation where i users had rights according to their department.
I had created one table User_Rights. Their I created one field Module_Name. Value in this field is similar to menu items value.
Here is the code
Dim i As Integer = 0
While i < Menu1.Items.Count
If Menu1.Items(i).ChildItems.Count > 0 Then
Dim j As Integer = 0
For j = 0 To Menu1.Items(i).ChildItems.Count - 1
If Menu1.Items(i).ChildItems(j).ChildItems.Count > 0 Then
Dim k As Integer = 0
Do While k < Menu1.Items(i).ChildItems(j).ChildItems.Count
iRow = 0
bFound = False
For iRow = 0 To dt.Rows.Count - 1
drow = dt.Rows(iRow)
If drow("Module_Name") = Menu1.Items(i).ChildItems(j).ChildItems(k).Value.ToString() Then
bFound = True
Exit For
End If
Next
If bFound = False Then
Menu1.Items(i).ChildItems(j).ChildItems(k).Enabled = False
Menu1.Items(i).ChildItems(j).ChildItems(k).Selectable = False
End If
k = k + 1
Loop
Else
iRow = 0
bFound = False
For iRow = 0 To dt.Rows.Count - 1
drow = dt.Rows(iRow)
If drow("Module_Name") = Menu1.Items(i).ChildItems(j).Value.ToString Then
bFound = True
Exit For
End If
Next
If bFound = False Then
Menu1.Items(i).ChildItems(j).Enabled = False
Menu1.Items(i).ChildItems(j).Selectable = False
End If
End If
Next
End If
i += 1
End While
这篇关于菜单控件无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!