Javascript 如何在asp中为子菜单和菜单编写onclick函数
我在谷歌上搜索过,没有找到符合我要求的解决方案, 我的输出像, 如果我单击“主页”和“许可证”以及“报告”,则表示我想重定向另一个Aspx页面。如何做? 我的代码隐藏编码像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
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);
}
}