ciao a tutti,
per ridurre il numero di bottoni presenti su una pagina ho pensato di raggrupparli, quindi il controllo che mi sembrava più adatto è il controllo menu, con un solo valore al primo livello e "tante" al secondo. Sarebbe perfetto se non fosse che il secondo livello viene visualizzato al onmouseover. Io vorrei invece visualizzarlo al click sull'elemento di primo livello.
Ho cercato un po' ed ho provato creando una classe che deriva da System.Web.UI.WebControls.Menu in cui faccio solo l'override del metodo Render e all'interno del quale sostituisco l'evento onmouseover con onclick. Il codice html sembra corretto ma non funziona!!
Questo è l'override del Render
protected override void Render(HtmlTextWriter writer)
{
StringBuilder stringBuilder = new StringBuilder();
StringWriter stringWriter = new StringWriter(stringBuilder);
HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
base.Render(htmlWriter);
string html = stringBuilder.ToString();
html = html.Replace("onmouseover=\"Menu_HoverStatic(this)\"", "onclick=\"Menu_HoverStatic(this);\"");
writer.Write(html);
}
sembrava non facesse nulla, così ho provato con
html = html.Replace("onmouseover=\"Menu_HoverStatic(this)\"", "onclick=\"alert('prima');Menu_HoverStatic(this);alert('dopo');\"");il risultato è il seguente:
- viene visualizzato il primo alert, senza muovere il mouse premo "spazio" per chiuderlo;
- compare il sottomenu ed il secondo alert, senza muovere il mouse premo "spazio" per chiuderlo;
- quindi scompare anche il sottomenu!
Avete suggerimenti?
Grazie.