Calendario su un button

venerdì 09 giugno 2006 - 13.29

bluland Profilo | Guru

salve, ho un form di inserimento dove in alcuni textbox devo inserire delle date, ho pensato di usare il calendario, ma poiche dovrei usare un calendario per ogni textbox che ne necessita ho pensato di mettere a fianco di ogni textbox un button dal quale si apre il calendario, qualcuno sa come fare?

saluti
ENzo

alx_81 Profilo | Guru

se lo vuoi lato client, metti il calendario in un div (invisibile alla load) e poi utilizzi input button html per lanciare al click la funzione javascript scritta per rendere visibile il div.

se lo vuoi lato server, imposti a design time la porprietà visible del calendario a false, e poi, al click dei bottoni la valorizzi a true
spero di aver capito bene..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

mi spiego meglio, ho 3 textbox dove devo inserire delle date, usando il calendar poi devo mettere un calendar per ogni textbox?, o come faccio a dire al calendar che la data va proprio nel textbox che sto scrivendo in quel momento?? per questo avevo pensato di mettere un button o un link a fianco di ogni textbox che richiamasse il calendar e sicuramente come hai detto tu bisogna usare javascript e' arriva il problema come si fa?


grazie ENzo

alx_81 Profilo | Guru

se ka pagina è leggera, io farei un roundtrip al server..
tre calendar, tre textbox, tre pulsanti..
tutti i calendar hanno visible a false, al click di ognuno dei pulsanti metti la proprietà visible a true..
all'evento del calendar imposti la proprietà text al valore di ritorno..

es:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

ecco ho fatto in questo modo

If Not Me.Txtcal2 Is Nothing Then
Me.Txtcal2.Text = Calendar2.SelectedDate.ToShortDateString()
Me.Calendar2.Visible = False
End If

grazie tante funziona! quindi ho messo un calendar per ogni text box, ma se la pagina fosse stata + pesante?
come avrei dovuto agire??

grazie ENzo

alx_81 Profilo | Guru

Se la pagina è molto persante (e anche in generale) meno roundtrip fai a server meglio è..
perchè ad ogni click hai un caricamento e se hai combo che prendono dati da select pesanti o datagrid che ricarichi ogni volta, puoi ben capire che diventa insostenibile (magari non in sviluppo, ma pubblicando in internet è tutta un'altra cosa)..
quindi, con un po' di congestione della rete, potresti metterci tanto per riempire 3 campi..
tu comunque, lascia la possibilità di inserire a mano la data, e applica al controllo un regularexpressionValidator lato client..
così l'utente può scegliere se usare il campo diretto o il pulsante per il calendario.. Mantenedo l'integrità del dato.
Nel caso in cui tu voglia evitare roundrip a server, devi scrivere tre div con all'interno i calendari e poi via javascript agire sulle impostazioni di visibilità e di posizionamento del div..
così mi sembrava più semplice, se ti si presenta il problema, ne riparliamo =)
ok?

io di solito uso il campo data con il regularExpressionValidator..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

non ho mai usato il regularExpress.... potresti farmi un esempio di uso ..


grazie del tempo che mi stai dedicando

alx_81 Profilo | Guru

ok..
Di fianco al textbox, trascina un requiredfieldvalidator ed un regularexpressionvalidator.
Impostali a desgin time così:

RegularExpressionValidator
ControlToValidate = (Nome del textbox da controllare)
ErrorMessage = Data nel formato errato!
ExpressionToValidate = (0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d
Display = Dynamic (Alloca lo spazio del messaggio dinamicamente) | Static (Alloca lo spazio comunque all'inizio) | None (Non visualizza il messaggio ma non fa eseguire comunque la submit)
N.B.: Se metti none, in seguito puoi, tramite un ValidationSummary visualizzare tutti gli errori in un elenco o tramite alert (messagebox di javascript).
Per ora imposta a Dynamic.

RequiredFieldValidator (solo se vuoi che il campo sia obbligatorio)
ControlToValidate = (Nome del textbox da controllare)
ErrorMessage = Data obbligatoria!
Display = Dynamic | Static | None

In questo modo, appena lanci la submit partono i controlli lato client..
se ci sono errori, messaggio!! =)

per trovare le regulaExpression valide c'è un buon sito:
http://www.regular-expressions.info/

prova e fammi sapere!!

ah, e se quello che ti ho detto prima ti soddisfa, accetta la risposta =)))
ciao!






Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

grazie di tutto do un okkiata !!!
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5