菜单控件无法正常工作 [英] Menu control not working properly

查看:80
本文介绍了菜单控件无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我正在使用菜单控件,并且想根据我的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屋!

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