Javascript 如何在asp中为子菜单和菜单编写onclick函数

Javascript 如何在asp中为子菜单和菜单编写onclick函数,javascript,asp.net,menu,submenu,Javascript,Asp.net,Menu,Submenu,我在谷歌上搜索过,没有找到符合我要求的解决方案, 我的输出像, 如果我单击“主页”和“许可证”以及“报告”,则表示我想重定向另一个Aspx页面。如何做? 我的代码隐藏编码像 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim cmd As New SqlCommand Dim data As Ne

我在谷歌上搜索过,没有找到符合我要求的解决方案, 我的输出像,

如果我单击“主页”和“许可证”以及“报告”,则表示我想重定向另一个Aspx页面。如何做? 我的代码隐藏编码像

     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim cmd As New SqlCommand
            Dim data As New SqlDataAdapter
            Dim ds As New DataSet
            Dim strcon As String = ConfigurationManager.ConnectionStrings("aaaaa").ConnectionString
            Dim con As New SqlConnection(strcon)
            Dim da As New SqlDataAdapter("Select MenuID, Menus from MenusDetails", con)
            Dim dttc As New DataTable()
            da.Fill(dttc)
            Dim main As HtmlGenericControl = UList("Menuid", "menu")
            Dim dtDist As New DataTable()
            For Each row As DataRow In dttc.Rows
                'For i As Integer = 0 To dttc.Rows.Count - 1
                'dtDist.Columns.Clear()
                cmd.Parameters.Clear()
                dtDist.Clear()
                cmd.CommandText = "FindMenus"
                cmd.Connection = con
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@MenuId", SqlDbType.Int).Value = row(0).ToString()
                data.SelectCommand = cmd
                data.Fill(dtDist)
                If dtDist.Rows.Count > 0 Then
                Dim sub_menu As HtmlGenericControl 
                sub_menu = LIList(row("Menus").ToString(), row("MenuID").ToString())
                Dim ul As New HtmlGenericControl("ul")
                Dim mains As HtmlGenericControl = UList("SubMenuId", "menu")
                For Each r As DataRow In dtDist.Rows
                ul.Controls.Add(LIList(r("SubMenu").ToString(), r("SubMenuId").ToString()))
                Dim ul1 As New HtmlGenericControl("ul")
                sub_menu.Controls.Add(ul)
                main.Controls.Add(sub_menu)
                 Next
                 Else
               If row("Menus") = "Home" Or row("Menus") = "Report" Then
                main.Controls.Add(LIList(row("Menus").ToString(), row("Menuid").ToString()))
                 Else
               End If
          End If
            Next
            Panel1.Controls.Add(main)
        End Sub
        Private Function UList(ByVal id As String, ByVal cssClass As String) As HtmlGenericControl
            Dim ul As New HtmlGenericControl("ul")
            ul.ID = id
            ul.Attributes.Add("class", cssClass)
            Return ul
        End Function
        Private Function LIList(ByVal innerHtml As String, ByVal rel As String) As HtmlGenericControl
            Dim li As New HtmlGenericControl("li")
            li.Attributes.Add("rel", rel)
            li.InnerHtml = (Convert.ToString("<a href=" + ">") & innerHtml) + "</a>"
            Return li
 End Function
Protected Sub Page_Load(ByVal sender作为对象,ByVal e作为System.EventArgs)处理Me.Load
Dim cmd作为新的SqlCommand
Dim数据作为新的SqlDataAdapter
Dim ds作为新数据集
Dim strcon As String=ConfigurationManager.ConnectionString(“AAAA”).ConnectionString
Dim con作为新的SqlConnection(strcon)
将da设置为新的SqlDataAdapter(“选择菜单UID,菜单详情中的菜单”,续)
作为新数据表的Dim dttc()
da.填充(dttc)
Dim main作为HtmlGenericControl=UList(“菜单UID”、“菜单”)
Dim dtDist作为新数据表()
对于dttc.行中作为DataRow的每一行
'对于i作为整数=0到dttc.Rows.Count-1
'dtDist.Columns.Clear()
cmd.Parameters.Clear()
dtDist.Clear()
cmd.CommandText=“FindMenus”
cmd.Connection=con
cmd.CommandType=CommandType.storedProcess
cmd.Parameters.Add(“@MenuId”,SqlDbType.Int).Value=row(0).ToString()
data.SelectCommand=cmd
数据填充(dtDist)
如果dtDist.Rows.Count>0,则
作为HtmlGenericControl的Dim子菜单
sub_menu=LIList(行(“菜单”).ToString(),行(“菜单”).ToString())
Dim ul作为新的HtmlGenericControl(“ul”)
将主电源调暗为HtmlGenericControl=UList(“子菜单ID”、“菜单”)
对于dtDist.Rows中的每个r作为数据行
添加(LIList(r(“子菜单”).ToString(),r(“子菜单ID”).ToString())
Dim ul1作为新的HtmlGenericControl(“ul”)
子菜单控件添加(ul)
main.Controls.Add(子菜单)
下一个
其他的
如果行(“菜单”)=“主页”或行(“菜单”)=“报告”,则
添加(LIList(行(“菜单”).ToString(),行(“菜单”).ToString())
其他的
如果结束
如果结束
下一个
面板1.控件.添加(主)
端接头
私有函数UList(ByVal id作为字符串,ByVal cssClass作为字符串)作为HtmlGenericControl
Dim ul作为新的HtmlGenericControl(“ul”)
ul.ID=ID
ul.Attributes.Add(“类”,cssClass)
返回ul
端函数
私有函数LIList(ByVal innerHtml作为字符串,ByVal rel作为字符串)作为HtmlGenericControl
Dim li作为新的HtmlGenericControl(“li”)
li.Attributes.Add(“rel”,rel)
li.InnerHtml=(Convert.ToString(“”)
返回李
端函数
我的Aspx页面像

 <div id="menu" class="menu" align="center" >
        <asp:Panel ID="Panel1" Width ="800px" runat="server">
        </asp:Panel>
    </div>

您可以直接使用

<asp:Menu ID="muWeb" runat="server" Orientation="Horizontal" OnMenuItemClick="muWeb_MenuItemClick">  </asp:Menu>
private void BuildMenu()
        {
            // get resultMenu from DB.
            foreach (MenuDTO menuDTO in resultMenu.Items)
            {
                if (menuDTO.ParentMenuId == null)
                {
                    MenuItem miParent = new MenuItem();
                    miParent.Text = menuDTO.MenuName;
                    miParent.NavigateUrl = menuDTO.URL;
                    BuildChildMenu(miParent, menuDTO, resultMenu);
                    muWEB.Items.Add(miParent);
                }
            }

        }

        private void BuildChildMenu(MenuItem piMenuItem, MenuDTO currentDTO, ResultSetDTO<MenuDTO> sourceDTO)
        {
            foreach (MenuDTO menuDTO in sourceDTO.Items.Where(operand => operand.ParentMenuId == currentDTO.MenuId).ToList<MenuDTO>())
            {
                MenuItem miChild = new MenuItem();
                miChild.Text = menuDTO.MenuName;
                miChild.NavigateUrl = menuDTO.MenuName;
                // Make recursive calll untill all levels are done.
                BuildChildMenu(miChild, menuDTO, sourceDTO);
                piMenuItem.ChildItems.Add(miChild);
            }
        }