Foros del Web » Programación para mayores de 30 ;) » .NET »

Realizar un menu en ASP.NET

Estas en el tema de Realizar un menu en ASP.NET en el foro de .NET en Foros del Web. Hola a tod@s, estoy haciendo un proyecto en asp.Net y no consigo encontrar un control menu con el que realizar lo que quiero, esplico la ...
  #1 (permalink)  
Antiguo 25/07/2005, 01:55
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Realizar un menu en ASP.NET

Hola a tod@s, estoy haciendo un proyecto en asp.Net y no consigo encontrar un control menu con el que realizar lo que quiero, esplico la situación.

Yo tengo diferentes controles de usuario que deben cargarse en la misma página (index.aspx, sin frames) según se seleccione en el menu, además de desaparecer los que no sean utilizados. Entonces mis preguntas son, de que forma hago mi menu y como puedo conseguir cargar los controles según la opción del menú.

En un principio leí en algún post del foro que utilizase el skmmenu, pero esta funcionalidad no la consigo hacer, si alguien sabe como realizarlo con este control, también me serviría.

muchas gracias por todo
  #2 (permalink)  
Antiguo 25/07/2005, 02:36
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
no se exactamente que es lo que intentas hacer, pero a los elementos de skmmenu les puedes añadir instrucciones javascript (con lo cual creo que podrías hacer lo que quisieses)
  #3 (permalink)  
Antiguo 25/07/2005, 03:37
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Cita:
Iniciado por Jose_minglein2
no se exactamente que es lo que intentas hacer, pero a los elementos de skmmenu les puedes añadir instrucciones javascript (con lo cual creo que podrías hacer lo que quisieses)
y con javascript que tendría que hacer¿?

me explico, quiero que se cargue en la misma página los diferentes controles que tengo creados, y así hacer en una sola página toda la web, sin tener que cambiar entre páginas. Había pensado hacerlo con <commandname> y con el postback, pero no lo consigo. Si se os ocurre como hacer eso con el skmmenu, os lo agradecería mucho.
  #4 (permalink)  
Antiguo 25/07/2005, 03:44
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
MenuItem1.JavascriptCommand = "document.getElementById('elemento').display=' in-line'"


p.ej.
  #5 (permalink)  
Antiguo 25/07/2005, 04:00
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Cita:
Iniciado por Jose_minglein2
MenuItem1.JavascriptCommand = "document.getElementById('elemento').display=' in-line'"


p.ej.
Ok, getElementById() - como funciona¿?


lo siento soy algo novata.
  #6 (permalink)  
Antiguo 25/07/2005, 04:05
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
pues busca en el html de tu página el elemento al cual le as puesto como id="elemento" (por ejemplo), y le aplica los cambios correspondientes. En el ejemplo que te he puesto muestra el elemento si está oculto. Pero me he equivocado, sería

none

MenuItem1.JavascriptCommand = "document.getElementById('elemento').style.display ='in-line'"
y para ocultarlo, p.ej.

MenuItem1.JavascriptCommand =document.getElementById('elemento').display='none '"

también puedes hacerlo en el servidor, si por ejemplo son controles de servidor, haciendo:

MenuItem1.JavascriptCommand="__doPostBack('ocultar ','')";

y tratar en el servidor el postback "ocultar"
  #7 (permalink)  
Antiguo 25/07/2005, 04:15
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Creo que esto ultimo si que es lo que andaba buscando (lo del servidor), voy a ver si consigo aplicarlo. Ah! utilizo controles de usuario...

Muchas gracias, ya te comento


PD. una pregunta más, el PostBack se trata como otra función semejante a la de Page_Load, es decir, haría un Private void PostBack(...)
y el MenuItem1 siempre se llama así en el skmmenu¿?¿? es decir, MenuItem-i siendo i=1..x submenus.
  #8 (permalink)  
Antiguo 25/07/2005, 04:24
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
No, lo que debes hacer en el page_load de tu pagina es lo siguiente:

Código PHP:
Private sub Page_Load(...) handles mybase.load

Page
.GetPostBackEventReference(Page)

if 
not ispostback()

...
else
  if 
request.form("__eventtarget") = "ocultar"
    
tu codigo
  end 
if

end if

end sub 
La primera línea te la recomiendo para que si no se agrega sola la función del postback se te agregue y lo puedas hacer sin problemas.

lo del menuitem, es cuando lo creas el nombre que le quieras poner, he puesto ese como ejemplo. pero le puedes poner el nombre que quieras. es decir

dim prueba as skmmenu.MenuItem = new MenuItem("Prueba")
prueba.JavascriptCommand = ...
  #9 (permalink)  
Antiguo 25/07/2005, 05:13
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Entonces esto:

MenuItem1.JavascriptCommand="__doPostBack('ocultar ','')";

donde tendría que colocarlo¿?¿? para estar en el lado del servidor.
  #10 (permalink)  
Antiguo 25/07/2005, 05:16
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
tendrías que colocarlo en el momento donde crees el menú. Así de sencillo.

Yo p.ej. lo cargo en un .ascx para tenerlo disponible en todas mis páginas. Ya dependende de como lo crees tú y donde.
  #11 (permalink)  
Antiguo 25/07/2005, 05:40
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Yo lo tengo en la página principal, pero como es mejor, es decir, me recomiendas entonces ponerlo en un control a parte...
  #12 (permalink)  
Antiguo 25/07/2005, 05:48
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Hombre, eso ya dependerá de ti, yo como te digo lo tengo en un control ascx para no tener que estar cargando en todas mis páginas el menú.
  #13 (permalink)  
Antiguo 25/07/2005, 08:38
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Lo voy a dejar donde lo tengo pero tengo una dudilla más, como asocio el MenuItem1.JavascriptCommand="__doPostBack('ocultar ','')";
a cada opción del menú¿?, es decir como sé cual es clickeada de entre todas.
  #14 (permalink)  
Antiguo 25/07/2005, 08:48
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Pues puedes usar el otro elemento del postback, p.ej.


MenuItem1.JavascriptCommand="__doPostBack('ocutar' ,'listado')";

...

MenuItem2.JavscriptCommand="__doPostBAck('ocultar' ,'foto')";

y luego en el page_load:

.....
if request.form("__eventtarget")="ocultar"

if request.form("__eventargument") = "listado"
'lo que quieras con el listado
else if request.form("__eventargument") = "foto"
'lo que quieras con la foto
end if
end if

...
  #15 (permalink)  
Antiguo 25/07/2005, 09:18
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Cita:
Iniciado por Jose_minglein2
Pues puedes usar el otro elemento del postback, p.ej.


MenuItem1.JavascriptCommand="__doPostBack('ocutar' ,'listado')";

...

MenuItem2.JavscriptCommand="__doPostBAck('ocultar' ,'foto')";

y luego en el page_load:

.....
if request.form("__eventtarget")="ocultar"

if request.form("__eventargument") = "listado"
'lo que quieras con el listado
else if request.form("__eventargument") = "foto"
'lo que quieras con la foto
end if
end if

...

Había comenzado a hacerlo semejante pero no con "__eventargument"
Pero la duda me viene ahora en lo siguiente, yo lo estoy haciendo bajo C# y el Request.Form me dice que es una propiedad, y ahí me he quedado, no sé por donde seguir.
  #16 (permalink)  
Antiguo 25/07/2005, 09:23
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
If (Request.Form["__eventtarget"] == "ocultar")
{
...
}
  #17 (permalink)  
Antiguo 25/07/2005, 09:33
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Oooh, jeje así sip, jiji.

----> pero ahora me da error:

El índice está fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección. Nombre del parámetro: index

y pongo esto:

mMenu.Items[1].JavascriptCommand=" __doPostBack('instalacion','')";

Siendo el item1 mi segundo menu¿?¿? como cuenta los menus y submenus¿?

Mi estructura xml es así:

item1
item2
item2.1
item2.2
item2.3
item3
  #18 (permalink)  
Antiguo 25/07/2005, 09:38
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
mmm, no se como lo cargará el xml (yo lo hago por codigo), prueba con:

mMenu.Items[0].SubItems[i].JavascriptCommand

siendo i de 1...n

pero ya te digo que ahí no se, puesto que lo cargo por code en el acsx.
  #19 (permalink)  
Antiguo 25/07/2005, 09:42
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
claro claro, y cargandolo en un control si que te funciona así, no¿?

mMenu.Items[0].SubItems[i].JavascriptCommand también lo he probado y me da el mismo error.

De todas formas, muchas gracias por todo lo anterior, voy a seguir peleandome . Gracias de nuevo
  #20 (permalink)  
Antiguo 25/07/2005, 09:47
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
ok, de nada, puedes ejecutar la aplicación paso a paso (si trabajas con VS), y así cuando tengas cargado el menú buscar todos sus componentes haber como te los ha organizado


Suerte!!!!
  #21 (permalink)  
Antiguo 25/07/2005, 10:08
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Cita:
Iniciado por Jose_minglein2
ok, de nada, puedes ejecutar la aplicación paso a paso (si trabajas con VS), y así cuando tengas cargado el menú buscar todos sus componentes haber como te los ha organizado


Suerte!!!!

Ey, lo he conseguido, jejejeje Te explico, he mirado con el depurador y he visto que al utilizar el <commandname>INSTALACION</commandname> del archivo xml, él mismo crea lo siguiente:

Cita:
id="mMenu-menuItem001-subMenu-menuItem001" onclick="javascript:__doPostBack('mMenu','INSTALAC ION')"
Y tan solo he tenido que cogerlo como me has dicho antes y a funcionar.

Muchas gracias

ale voy a seguir con todo lo restante del menú
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:56.