0

私のアプリケーションには垂直メニューがあります。各メニューはリンクボタンです。これらのリンクボタンはhtmlテーブルセル内に配置さ れ、ASP.NETコードの後ろ<td>に作成して配置しました。

メニューを作成するために私が行うmenuCell.Controls.Add(newMenu); sumenusを持つリンクをクリックすると、これはメインリンクボタンの下に表示されます。

ここに画像の説明を入力してください

もう一度クリックすると、サブメニューは非表示になる必要がありますが、サブメニューが取った場所はそこにとどまります。私はjqueryでそれを行います:

function toggleSubMenu(smenu) {
        $('.'+smenu').toggle();
    }

Menu2とMenu3の間の空白部分を見てください。

ここに画像の説明を入力してください

したがって、主な目的はこのスペースを削除することです。自動的に作成する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">&nbsp;
                </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 />
4

2 に答える 2

0

ASP.NETはサーバー側でコードを処理します。ページが読み込まれると、DOMはJavascriptまたはjQueryなどのJavascriptライブラリを使用してのみ操作できます。

于 2012-12-21T14:16:58.660 に答える
0

各サブメニューをAsp.netパネル内に配置します。

Panel psubmenu = new Panel();
HyperLink hylSMenu = new HyperLink();
psubmenu.Controls.Add(hylSMenu);

次に、パネルをコンテナ全体の中に入れます。

menuCell.Controls.Add(psubmenu);

panelこのように、各サブメニューの代わりに切り替えます。

于 2012-12-21T22:12:54.473 に答える