Zdravím,
potřeboval bych poradit, jak vytvořit menu podobné tomuto (po funkční stránce): http://www.tescosw.cz/cz/aktualne/2012/art_4387/novinky-2012.aspx. Tedy jak udělat, aby vertikální menu zůstalo po rozkliknutí stále rozbalené. Díky
Zdravím,
potřeboval bych poradit, jak vytvořit menu podobné tomuto (po funkční stránce): http://www.tescosw.cz/cz/aktualne/2012/art_4387/novinky-2012.aspx. Tedy jak udělat, aby vertikální menu zůstalo po rozkliknutí stále rozbalené. Díky
Zdravím,
předpokládám, že to chceš udělat ve webforms a né MVC. Myslím, že je tam kontrolka Menu, která by se k tomuto účelu dala nejspíš použít (ohnout), ale osobně bych to udělal sám přes javascript a ajax, nemělo by to být nic těžkého.
A nebo když se ti to nebude chtít dělat přes AJAX, tak můžeš na stránku vygenerovat obsah celého menu a pomocí Javascriptu nebo jQuery to zobrazovat a skrývat třebas jen přidáním nebo ubráním css tříd. jQuery na to má myslím metody Show a Hide.
Ahoj,
mrkni na tohle:
http://www.asp.net/ajaxlibrary/act_Accordion.ashx
Jsou to připravené kontrolky, které pracují s AJAXem a jsou psány přímo pro ASP.NET.
Evžen
diky,
Mám menší problém s asp.net menu. Pokud položky menu mají nastavený NavigateURL, pak se nevyvolá událost OnMenuItemClick. Jak to udělat aby došlo k OnMenuItemClick i v tomto případě?
<asp:Menu ID="MainMenu" runat="server" StaticDisplayLevels="3" OnMenuItemClick="MainMenu_click">
<Items>
<asp:MenuItem Text="File" Value="File">
<asp:MenuItem Text="New" Value="New"></asp:MenuItem> <!-- Po cliknutí dojde k události -->
<asp:MenuItem Text="Open" Value="Open" NavigateUrl="~/neco.aspx"></asp:MenuItem> <!-- Po cliknutí nedojde k události -->
</Items>
</asp:Menu>
No zatim jsem to "vyresil" oklikou.
Původně jsem si do MenuItem.value ukládal pouze id pro identifikaci hlavních položek menu. Teď si tam ukládám i adresu URL odkazu (což pak musím zase v kódu řešit a rozdělit string pomocí funkce split, což mi přijde takové celé nečisté řešení). Pokud teda nemá hlavní položka submenu, pak se přejde na danou stránku přímo z kódu, takže nemusím nastavovat NavigateURL. V opačném případě se vytvoří submenu.
Jinak menu načítám z DB. Ještě to nějak naskinovat, což dopadne hůř než kód .
Možná už jsem moc času strávil s MVC, ale už se snažím kontrolkám, co nejvíc vyhnout.
Já bych to řešil přes jQuery:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<script>
$(function() {
$( "#accordion" ).accordion();
});
</script>
</head>
<body>
<div id="accordion">
<h3>Section 1</h3>
<div>
<ul>
<li>1. odkaz</li>
<li>2. odkaz</li>
</ul>
</div>
<h3>Section 2</h3>
<div>
<li>1. odkaz</li>
<li>2. odkaz</li>
</div>
</div>
</body>
</html>
Vygenerovat do toho můžeš cokoli chceš třeba repeaterem, nastylovat to půjde pomocí CSS krásně a markup bude čistý. Pochopitelně tohle je statické řešení, dynamické tahání ajaxem z databáze by bylo odhadem o 10 řádků delší (což stejně bude, když tam dáš repeater(y)).
Přeji hezký den
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku