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

calendario

Estas en el tema de calendario en el foro de .NET en Foros del Web. Hola tengo una consulta con el calendario asp.net yo quiero que cuando la persona seleccione el calendario se despliegue un vista con todos los meses ...
  #1 (permalink)  
Antiguo 24/01/2005, 08:25
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 2 meses
Puntos: 1
calendario

Hola

tengo una consulta con el calendario asp.net yo quiero que cuando la persona
seleccione el calendario se despliegue un vista con todos los meses del año
en curso, eso es posible? alguien tiene una idea o sugerencia de como podria
hacer eso

Gracias de antemano
  #2 (permalink)  
Antiguo 25/01/2005, 10:43
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
Lo que se me ocurre es que coloques por ejemplo un panel y desde código vayas creando el calendario y lo agregas al panel.

Ejemplo:

Cita:
//obtienes el año y el mes con el que deseas comenzar
DateTime dt = new DateTime(2005,1,1);

for (int i=1;i<=12;i++)
{
Calendar c = new Calendar();
c.ID = "calendar" + i;
c.TodaysDate = dt;
//aqui lo agregas al panel
this.Panel1.Controls.Add(c);
dt = dt.AddMonths(1);
}
Y con ello te saldrán los 12 calendarios que necesits, ya para acomodarlos lo puedes hacer con una tabla (la dibujas desde código) y le das forma así como algun CSS para una mejor presentacion, pero ese ya depende de tí.

Espero que te funcione..

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 26/01/2005, 09:06
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 2 meses
Puntos: 1
Hola creo que no te entendi bien. Veras quize hacer un codijo que me permitiera a partir de un calendario mostrar los 12 meses del año como mas o menos te entende a ti,

Lo que hice fue esto
pero no me muestra los 12 meses del año

<%@ Page language="VB" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Rainbow.DesktopModules.CalendarCliente.W ebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<HTML>
<HEAD>
</HEAD>
<script language="VB" runat="server">

Sub Calendar1_SelectionChanged(sender As Object, e As EventArgs)
AddtoMonth(Calendar1.SelectedDate)
End Sub
Sub AddtoMonth(NewMonth As DateTime)

Dim Dm as datetime= new DateTime(2005,1,1)
Dim i as integer
Dim C as new Calendar()
For i=1 to 12
C.ID = "Calendar1" + i
C.TodaysDate = Dm
Next i
Dim Panel1 as Panel
Panel1.Controls.Add(C)
Dm = Dm.AddMonths(1)
End Sub
</script>
</head>
<body>
<form id="Form1" method=post runat=server>
<asp:calendar id="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged" BorderStyle="Solid"
Font-Name="verdana" Font-Size="8px" Height="30px" Width="35px" DayHeaderStyle-BackColor="gainsboro"
OtherMonthDayStyle-ForeColor="gray" TitleStyle-BackColor="gray" TitleStyle-Font-Bold="True"
TitleStyle-Font-Size="9px" SelectedDayStyle-Font-Bold="True" TodayDayStyle-BackColor="">
<TodayDayStyle backcolor="Coral"></TodayDayStyle>
<DayHeaderStyle backcolor="Gainsboro"></DayHeaderStyle>
<TitleStyle font-size="9px" font-bold="True" backcolor="Gray"></TitleStyle>
<OtherMonthDayStyle forecolor="Gray"></OtherMonthDayStyle>
</asp:calendar>
</form>
</body>
</HTML>
  #4 (permalink)  
Antiguo 26/01/2005, 09:18
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
2 cosas:

1.- En tu code no te salen los 12 porque estás fuera del ciclo for.

Cambia ésto:

Cita:
Sub AddtoMonth(NewMonth As DateTime)
Dim Dm as datetime= new DateTime(2005,1,1)
Dim i as integer
Dim C as new Calendar()
For i=1 to 12
C.ID = "Calendar1" + i
C.TodaysDate = Dm
Next i
Dim Panel1 as Panel
Panel1.Controls.Add(C)
Dm = Dm.AddMonths(1)
End Sub
por ésto:

Cita:
Sub AddtoMonth(NewMonth As DateTime)
Dim Dm as datetime= new DateTime(2005,1,1)
Dim i as integer
Dim C as new Calendar()
For i=1 to 12
C.ID = "Calendar1" + i
C.TodaysDate = Dm
Panel1.Controls.Add(C)
Dm = Dm.AddMonths(1)

Next i
End Sub
Y tu panel colocalo en modo design (drag and drop), no lo pongas por código.

pon en tu html algo como ésto:

Cita:
<asp:Panel id="Panel1" runat="server">Panel</asp:Panel>
2.- Quieres que salgan 12 calendarios con los 12 meses (enero-diciembre) o un calendario con los 12 meses.

Salu2
  #5 (permalink)  
Antiguo 26/01/2005, 12:11
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 2 meses
Puntos: 1
Hola. Yo lo que quiero es que salgan 12 calendarios con los 12 meses (enero-diciembre). Yo tengo un calendario pequeño y quiero que cuando hagan click sobre el,se depliegue esta pantalla con los 12 calendarios (enero-diciembre)
  #6 (permalink)  
Antiguo 26/01/2005, 14:28
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 2 meses
Puntos: 1
Hola RootK
Ya lo hice asi
<%@ Page language="VB" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Rainbow.DesktopModules.CalendarCliente.W ebForm1" debug=true%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<script language="VB" runat="server">

Sub Calendar1_SelectionChanged(sender As Object, e As EventArgs)
AddtoMonth(Calendar1.SelectedDate)
End Sub

Sub AddtoMonth(NewMonth As DateTime)
Dim Dm as datetime= new DateTime(2005,1,1)
Dim i as integer
Dim C as new Calendar()
For i=1 to 12
C.ID = "Calendar1" + i
C.TodaysDate = Dm
Panel1.Controls.Add(C)
Dm = Dm.AddMonths(1)
Next i
End Sub

</script>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:Panel id="Panel1" runat="server">Panel</asp:Panel>
<asp:calendar id="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged" BorderStyle="Solid"
Font-Name="verdana" Font-Size="8px" Height="30px" Width="35px" DayHeaderStyle-BackColor="gainsboro"
OtherMonthDayStyle-ForeColor="gray" TitleStyle-BackColor="gray" TitleStyle-Font-Bold="True"
TitleStyle-Font-Size="9px" SelectedDayStyle-Font-Bold="True" TodayDayStyle-BackColor="">
<TodayDayStyle backcolor="Coral"></TodayDayStyle>
<DayHeaderStyle backcolor="Gainsboro"></DayHeaderStyle>
<TitleStyle font-size="9px" font-bold="True" backcolor="Gray"></TitleStyle>
<OtherMonthDayStyle forecolor="Gray"></OtherMonthDayStyle>
</asp:calendar>
</form>
</body>
</HTML>



y me da el siguiente error System.FormatException: Input string was not in a correct format y señala la linea
C.ID = "Calendar1" + i
  #7 (permalink)  
Antiguo 26/01/2005, 15:25
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
Cambia ésto:
C.ID = "Calendar1" + i

por ésto:

Cita:
C.ID = "Calendar1" & i
  #8 (permalink)  
Antiguo 26/01/2005, 15:31
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 2 meses
Puntos: 1
Hola Rootk, me funciona a medias en realidad me muestra un calendario con el mes de diciembre.
  #9 (permalink)  
Antiguo 26/01/2005, 16:42
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
Checalo bien porque el code que puse desde el principio funcion bien , te lo digo porque yo había hecho pruebas previamente.
  #10 (permalink)  
Antiguo 27/01/2005, 06:31
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 2 meses
Puntos: 1
Hola Rootk, yo creo que me falla debido a que yo cambie esta linea .

for (int i=1;i<=12;i++)
po esta

for i=1 to 12

debido a que cuando colocaba la tuya
me generaba un error

" El carácter no es válido." .

Lo que no me queda claro es si cuando yo lo sutitui por esto for i=1 to 12, afecte la parte de incrementar de uno en uno.
  #11 (permalink)  
Antiguo 27/01/2005, 10:26
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
ya ví tu problema, lo que pasa es que estas colocando el New antes de tu ciclo for, prueba de ésta forma:

Cita:
Sub AddtoMonth(NewMonth As DateTime)
Dim Dm as datetime= new DateTime(2005,1,1)
Dim i as integer
For i=1 to 12
Dim C as new Calendar()
C.ID = "Calendar1" & i
C.TodaysDate = Dm
Panel1.Controls.Add(C)
Dm = Dm.AddMonths(1)
Next i
End Sub
Espero que ahora si te quede..
  #12 (permalink)  
Antiguo 27/01/2005, 12:08
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 2 meses
Puntos: 1
Hola RootK ya funciona bien. Tengo una prengunta. Las vista de los 12 meses las toma del control calendar que defini en la aplicación. Mi pregunta es porque no me toma las propiedad de height y wihth del original, es decir, cuando me muestra los 12 meses los calendarios son mas grandes(en tamaño) que el original
  #13 (permalink)  
Antiguo 28/01/2005, 07:59
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 2 meses
Puntos: 1
Hola. Ahora tengo un dilema existencial. Veras en el calendario pequeño se visualizan unos dias que fueron marcados por otra aplicación, esos dias marcados estan por todos los meses, la cuestion de que si visualizaran los 12 meses era para ver en detalle los dias marcados de la aplicación.

Hay alguna menera de que yo mediante codigo pueda indicarle que visualize esos dias especiales y el dia actual en el calendadario de 12 meses?
  #14 (permalink)  
Antiguo 28/01/2005, 10:12
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
Puedes apoyarte con la propiedad SelectedDate, sería cosa de que juegues un poco con las fechas para seleccionar el día que necesitas.

Ejemplo:

Cita:
For i = 1 To 12
Dim C As New Calendar
C.ID = "Calendar1" & i
C.TodaysDate = Dm
C.SelectedDate = Dm.AddDays(12)
Panel1.Controls.Add(C)
Dm = Dm.AddMonths(1)
Next i
Donde AddDays le vas a indicar el número del día que deseas seleccionar, recuerda que por default empieza en el día 1, es decir que si colocas AddDays(12) se colcoará en el día 13.

Es eso lo que necesitas..??

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #15 (permalink)  
Antiguo 28/01/2005, 13:08
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 2 meses
Puntos: 1
Hola RootK, no no es lo que necesito , veras tengo tengo dos aplicaciones cada una con un calendario. La priemra es la aplicación del administrador y la segunda la del cliente.

La aplicación del administrador permite seleccionar las fechas por categorias asuetos feriado y bancarios. Cada categoria tiene un color , los asuetos en verde los feriados en amarillo y los bancarios en azul tambien puede deschequear una fecha seleccionada. Las fechas seleccionadas permanecen fijas en el calendario marcada con su color correspondiente.

La aplicacion del cliente tiene un calendario en el que se vizualizan las fechas marcadas con los colores y se supone que cuando este de click sobre el calendario se desplieguen los 12 calendarios con los 12 meses y en cada mes debe aparecer las fechas marcadas con los colores.
¿Me entiendes?
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 12:40.