Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/03/2005, 09:53
Avatar de RootK
RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 10 meses
Puntos: 50
De acuerdo Regresar la fecha de un calendario (popup)

En vista de que varias veces preguntan como abrir un calendario y regresar la fecha en un texto box, aqui les pongo un ejemplo.

Debes tener 2 página, la principal y la popup (calendario)

En la página principal tendrías un texto box para regresar la fecha y un link común y corriente para abrir la popup, Ejemplo:

Cita:
<asp:TextBox id="txtDate1" runat="server"></asp:TextBox>
<a href="#" onclick="openCalendar('txtDate1');">Calendario</a>
Y en los headers de mi página pondría algo así:

Cita:
<HTML>
<HEAD>
<script language="javascript">
function openCalendar(obj)
{
var url = 'popupCalendar.aspx?textbox=' + obj;
window.open(url,'cal','width=205,height=145,left=3 70,top=280,resizable=0,scrollbars=0');
}
</script>
</HEAD>
<body>
....
..
Y en mi pagina llamada popupCalenar.aspx, en el html tendría (ejemplo)

Cita:
<asp:calendar id="Calendar1" runat="server" BorderStyle="Solid" NextPrevFormat="ShortMonth" BackColor="White"
Width="8px" ForeColor="Black" CellSpacing="1" Height="64px" Font-Size="7pt" Font-Names="Verdana"
BorderColor="Black">
<TodayDayStyle ForeColor="White" BackColor="#999999"></TodayDayStyle>
<DayStyle BackColor="#CCCCCC"></DayStyle>
<NextPrevStyle Font-Size="8pt" Font-Bold="True" ForeColor="White"></NextPrevStyle>
<DayHeaderStyle Font-Size="8pt" Font-Bold="True" Height="8pt" ForeColor="#333333"></DayHeaderStyle>
<SelectedDayStyle ForeColor="White" BackColor="#333399"></SelectedDayStyle>
<TitleStyle Font-Size="9pt" Font-Bold="True" Height="12pt" ForeColor="White" BackColor="#C00000"></TitleStyle>
<OtherMonthDayStyle Font-Size="7pt" ForeColor="#999999"></OtherMonthDayStyle>
</asp:calendar>
Y en el codebehind en el evento SelectionChanged tendría algo así:

Cita:
vb.net
Private Sub Calendar1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged
Dim obj As String = Request.QueryString("textbox")
If Not obj Is Nothing Then
Dim strScript As String = "<script>window.opener.document.getElementById ('" + obj + "').value = '"
strScript += Calendar1.SelectedDate.ToString("dd/MM/yyyy")
strScript += "';self.close()"
strScript += "</" + "script>"
RegisterClientScriptBlock("Calendar_ChangeDate", strScript)
End If
End Sub

c#

private void Calendar1_SelectionChanged(object sender, System.EventArgs e)
{
string obj = Request.QueryString["textbox"];
if (obj != null)
{
string strScript = "<script>window.opener.document.getElementById ('" + obj + "').value = '" + Calendar1.SelectedDate.ToString("dd/MM/yyyy") + "';self.close()" +
"</" + "script>";
RegisterClientScriptBlock("Calendar_ChangeDate",st rScript);

}
}
Y listo, , al dar click sobre cualquier día regresaré a mi textbox la fecha seleccionada.

Solo hagan copy and paste del code, no hay que modificar nada, ya depende de ustedes adecuarlo a sus necesidades.

Saludos y cualquier duda o comentario sera bienvenido..
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net