Calendario popup

mercoledì 29 ottobre 2008 - 19.23

bolla111 Profilo | Senior Member

ciao a tutti...
nella mia form ho 3 textbox con a fianco 3 tasti.
io vorrei che cliccando questi tasti mi si apra una nuova form contenente un controllo calendar e che al click della data mi inserisca nel textbox (a fianco al bottone clikkato) la data selezionata.
ho creato la form popup contenente il calendar...ma sicomme non so una mazza di javascript non riesco a farlo funzionare
mi aiutate?
grazie

balfaz Profilo | Expert

ti consiglio di leggere questo link

http://www.devx.com/vb2themax/Tip/18850 oppure
http://aspalliance.com/87

ce un esempio perfetto di quello che vuoi fare

"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."

bolla111 Profilo | Senior Member

non funziona...e cmq non ci ho capito molto

balfaz Profilo | Expert

fai questo per il form padre
esempio parent
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

dopo nel form figlio fai questo

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
questa procedura l'ho gia usata prima e funziona, spero che adesso sia un po più chiaro, lo so che magari rompe un po con quello che avevi prima ma è la forma come io son riuscito

"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."

bolla111 Profilo | Senior Member

perchè non viene fatto niente nelle pagine behind?...ti posto come l'ho fatto io...magari riesci semplicemente a correggermelo...
nella form padre ho messo questo:

<asp:TextBox ID="TextTADSC" runat="server" ReadOnly="True" Width="180px"></asp:TextBox>
<a href="javascript:;" onclick="window.open('Calendario.aspx?textbox=TextTADSC', 'reg','width=250,height=225,left=270,top=180')">
<asp:Button ID="ButtonTADSC" runat="server" Height="22px" Text="Button" Width="67px" /></a>




nella form figlio:

<asp:Calendar ID="Calendar1" runat="server" BackColor="White" BorderColor="#3366CC"
BorderWidth="1px" CellPadding="1" DayNameFormat="Shortest" Font-Names="Verdana"
Font-Size="8pt" ForeColor="#003399" Height="200px" OnSelectionChanged="Calendar1_SelectionChanged"
Width="220px">
<SelectedDayStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
<TodayDayStyle BackColor="#99CCCC" ForeColor="White" />
<SelectorStyle BackColor="#99CCCC" ForeColor="#336666" />
<WeekendDayStyle BackColor="#CCCCFF" />
<OtherMonthDayStyle ForeColor="#999999" />
<NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF" />
<DayHeaderStyle BackColor="#99CCCC" ForeColor="#336666" Height="1px" />
<TitleStyle BackColor="#003399" BorderColor="#3366CC" BorderWidth="1px" Font-Bold="True"
Font-Size="10pt" ForeColor="#CCCCFF" Height="25px" />
</asp:Calendar>
<input id="control" runat="server" name="control" style="z-index: 103; left: 16px;
position: absolute; top: 32px" type="hidden" />




nella pagina codice della form figlio:

Partial Public Class Calendario
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
control.Value = Request.QueryString("textbox").ToString()

End Sub

Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged

Dim StrScript As String

StrScript = "<script>window.opener.document.forms(0).elements['ctl00$ContentPlaceHolder1$" + control.Value + "'].value = '"
StrScript += Calendar1.SelectedDate.ToString("dd-MM-yyyy")
StrScript += "';self.close();"
StrScript += "</" + "script>"
If Not Page.IsClientScriptBlockRegistered("Calendar1_SelectionChanged") Then
Page.RegisterClientScriptBlock("Calendar1_SelectionChanged", StrScript)
End If

End Sub
End Class

balfaz Profilo | Expert

lo provo direttamente da codice dammi 10 min.



aspetta che ho guardato male

"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."

bolla111 Profilo | Senior Member

non è cambiato niente...cmq la form formato popup contenente il calendario me la apre, il codice lo esegue (infatti la data la prende come parametro)...solo che non la passa alla form padre...

balfaz Profilo | Expert

sei riuscito a fare qualcosa o ancora niente, io appena adesso mi son liberato per guardare il problema OOOps!!!
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."

bolla111 Profilo | Senior Member

momentaneamente rinunciato...vedo domani...x oggi basta...

balfaz Profilo | Expert

innanzitutto tu stai usando delle masterpages???, perché il codice che usi sta valutando dei controlli contenuti in un content
se non usi una masterpages, allora dovrebbe bastare solo togliere questo pezzo "ctl00$ContentPlaceHolder1$"

cambia questo pezzo
If Not Page.IsClientScriptBlockRegistered("Calendar1_SelectionChanged") Then
Page.RegisterClientScriptBlock("Calendar1_SelectionChanged", StrScript)
End If

per quest'altro
If Not ClientScript.IsClientScriptBlockRegistered("attiva_valore") Then
ClientScript.RegisterClientScriptBlock(Me.GetType(), "attiva_valore", strScript)
End If

appena vedi qualcosa informaci
"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."

bolla111 Profilo | Senior Member

ok perfetto...meglio che mi impari quelle istruzioni li, e il javascript...ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5