我的应用程序有一个垂直菜单。每个菜单都是一个链接按钮。这些链接按钮放在html 表格单元格 <td>
中,我创建并将它们放在后面的ASP.NET代码中。
要创建菜单,我会menuCell.Controls.Add(newMenu);
当我点击一个有sumenus的链接时,会显示在主链接按钮下面:
当我再次点击它时,子菜单必须隐藏但是它们占据的位置一直停留在那里。我用jquery做到了:
function toggleSubMenu(smenu) {
$('.'+smenu').toggle();
}
查看Menu2和Menu 3之间的空白区域。
所以主要目标是删除这个空间。 是否有任何Asp.NET占位符或容器自动生成?或者我是否必须使用jQuery手动上传Menu3及其下方的所有内容?
完整的HTML代码: MenuCell 会保留菜单。同样,每个菜单都会创建并放在后面的ASP.NET代码中。
<body MS_POSITIONING="Gridlayout">
<!-- Logo -->
<form id="Menu" method="post" runat="server">
<table id="mainTable" style="Z-INDEX: 101; LEFT: 0px; POSITION: absolute; TOP: 0px" tabIndex="-1" height="800" cellSpacing="0" cellPadding="0" border="0" runat="server" width="125px">
<tr align="left">
<td style="WIDTH: 125px" tabIndex="-1" vAlign="bottom" align="middle" colSpan="2" height="55"><IMG id="imgLogo" tabIndex="-1" height="50" width="50" align="middle" border="0" runat="server">
</td>
</tr>
<TR>
<TD style="WIDTH: 125px" vAlign="top" align="middle"></TD>
<TD vAlign="top" align="left" colSpan="1" rowSpan="2"><IMG id="imgLine" style="WIDTH: 1px" height="720" hspace="0" width="1" vspace="0" border="0" runat="server"></TD>
</TR>
<tr align="left">
<td id="menuCell" style="WIDTH: 125px" tabIndex="-1" vAlign="top" align="left" height="740" runat="server"></td>
</tr>
</table>
</form>
</body>
我无法将整个呈现的代码放在隐私政策中,但每个菜单和子菜单链接在<a>
<td>
menuCell
内呈现为 <td id="menuCell" style="WIDTH: 125px" tabIndex="-1" valign="top" align="left" height="740">
<a id="Menu1" style="width:124px;LEFT:1px;TOP:8px;POSITION:relative;">Menu1</a>
<br />
<a id="Menu6" style="width:124px;LEFT:1px;TOP:11px;POSITION:relative;">Menu6</a>
<br />
:
呈现的代码是:
{{1}}
答案 0 :(得分:0)
ASP.NET将在服务器端处理代码。加载页面后,只能使用Javascript或Javascript库(如jQuery)来操作DOM。
答案 1 :(得分:0)
我将每个子菜单放在Asp.net面板中:
Panel psubmenu = new Panel();
HyperLink hylSMenu = new HyperLink();
psubmenu.Controls.Add(hylSMenu);
然后将Panel放入整个容器中:
menuCell.Controls.Add(psubmenu);
像这样我切换panel
而不是每个子菜单。