10 messaggi dal 29 gennaio 2007
Salve a tutti,
mi sono appena iscritto al forum, quindi siate pazienti  ...

Non sono granchè abile nella realizzazione di siti web. Sto cercando di realizzare un menu di navigazione semplice, tipo barra di navigazione. L'ho realizzato con un repeater agganciato ad un site map. Sono riuscito a rendere l'effetto di cambiare l'immagine del pulsante quando ci si passa di sopra con il mouse. Quello che vorrei riuscire a fare è far sì che il pulsante corrispondente alla pagina che si sta visualizzando appaia in modo diverso. Qualcuno mi può aiutare?
426 messaggi dal 17 aprile 2006
se hai un imagebutton nel repeater ad es potresti impostare l'evento on_load
nell'aspx:
<asp:ImageButton ID="ImageButton1" runat="server" OnLoad="imageButton_Load" />


e nel cs
protected void imageButton_Load(object sender, EventArgs e)
{
        ImageButton ib = (ImageButton)sender;
        //... fai i controlli che vuoi e modificalo come vuoi ad es.
        //ib.ImageUrl= ...
}

Ciao Alessandro
10 messaggi dal 29 gennaio 2007
Grazie per la risposta,
ma in realtà non ce l'ho. Ho realizzato gli elementi del menu con dei semplici <li> dei quali poi ho impostato la grafica tramite CSS. La cosa è venuta molto pulita. Ho fatto tutto tramite HTML. L'unica cosa è che mi piacerebbe poter realizzare anche questo. Immagino che si possa fare in qualche modo, solo che non vedo come...
426 messaggi dal 17 aprile 2006
mi posti il tuo repeater così evitiamo soluzioni inutili :)

serve solo il tag del repeater, non il css thks

Ciao Alessandro
al dilà che potevi utilizzare il WebControl menu e i Css Control Adpater (quà trovi la differenza tra html pre e dopo css http://www.asp.net/CSSAdapters/Menu.aspx).

per fare quello chiedi ci sono molte strade.

la più pultia visto che stai facendo tutto "a mano" è utilizzare sempre una classe css, quindi applicarla con un metodo simile a quello suggerito da taccio.
i controlli server li puoi utilizzare tranquillamente.


se stai usando il web.sitemap puoi sapere il nodo corrente con SiteMap.CurrentNode.Url e fare i confronti del caso.

ciao marco
Modificato da nostromo il 29 gennaio 2007 14.10 -

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
10 messaggi dal 29 gennaio 2007
Scusami per il ritardo con cui rispondo,
il codice è questo:

<asp:Repeater ID="rptMenu" runat="server" DataSourceID="SiteMapDataSource1">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li id="menu_item" class="nav_item">
<asp:HyperLink Runat="server" ID="MenuLink" NavigateUrl='<%# Eval("Url") %>'><span><%# Eval("Title") %></span></asp:HyperLink></li>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
10 messaggi dal 29 gennaio 2007
Grazie,
faccio qualche tentativo. Avevo dato preso in considerazione la possibilità di usare il controllo menu con i CSS adapter. Il punto è che non sono molto addentro al funzionamento dei CSS, e quando ho dato un'occhiata ai CSS adapter sono rimasto un pò scoraggiato. Mi sembrava semplice farlo funzionare così com'era, ma personalizzarlo molto, come volevo fare io, mi sembrava un pò più arduo. Magari è solo mia ignoaranza.

Avevo pensato di fare tutto lato client, con uno script al caricamento della pagina. Il punto è che non so come referenziare l'elemento <li> specifico, visto che hanno tutti lo stesso ID.

Dal lato server ho pressapoco lo stesso problema.

Grazie per la disponibilità.
<asp:HyperLink cssClass='<%# GetCssClass (Conteiner.DataItem)%>'

lato codice

public string GetCssClass (object ob)
    {
        DataRowView rw = (DataRowView)ob;
if(rw != null)
{
string valore = (string)rw["Url"];
}

      
    }


recuperato il valore dell'urlo lo confronti con quello de nodo corrente.

ciao marco

p.s. non c'è niente di male a voler fare tutto a mano anzi può servire molto per capire meccanismi che i WebControl possono nascondere.

a prima vista la complessità dei CssControlAdapter e dei css può spavenatare ma per fortuna sul sito ci sono prenti dei css, li puoi anche semplicemente modificare che è più semplice che realizzarli da zero
Modificato da nostromo il 29 gennaio 2007 15.19 -

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.