Riempimento automatico di TextBox in FormView

mercoledì 21 gennaio 2009 - 04.51

blues66 Profilo | Newbie

Buongiorno a tutti, nel mio dilettarmi in ASPNET, da qualche tempo sto cozando contro un problema che, malgrado abbia sfogliato un pò dappertutto, non riesco a risolvere.

Nella parte compilativa (InsertItem) di una formview (alimentata da un db), ho due textBox, "TextField1" e "TextField2". La prima viene compilata inserendo la data (gg/mm/aaaa), la seconda, in formato testo, riporterà solo l'anno, utilizzando una condizione il cui concetto dovrebbe essere : if Text.Field1 between 1/1/2008 and 31/12/2008 then 2008 etc..., e dovrebbe compilarsi automaticamente.
Immagino di dover usare qualcosa tipo 'convert.toString' , ma non ho grande familiarità con questa sintassi. Potete darmi una mano per favore?

Grazie mille

paoval72 Profilo | Senior Member

Ciao, se ho capito bene, vorresti che nella seconda textbox apparisse l'anno della data della prima textbox?
Se è così, sapendo qual'è la prima data, puoi ricavare l'anno con una substring. Le textBox contengono solo dati stringa (con la proprietà .Text), quindi al limite la Convert.ToString() la farai sulla prima TextBox.
Ad esempio:
21/01/2009 è la TextField1.Text. (quindi se ti arriva da db un tipo dateTime dovrai convertirlo in stringa qui)

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

Ovviamente il formato della data deve essere sempre uguale (gg/mm/aaaa), altrimenti la substring risulta sfalsata: cioè, se ti arriva un 21/1/09, l'applicativo va in errore.

PV

blues66 Profilo | Newbie

Ciao e grazie per la sollecita risposta.
Il suggerimento è sicuramente valido, ma il problema dell'inserimento delle date in formato tipo "g/m/aa" esiste e quindi il risultato sarebbe compromesso.
ma tu dici che proprio non si riesce a porre una condizione che in base ai valori della data, restituisca su un'altra cella un determinato valore ?

Ciao e grazie ancora

paoval72 Profilo | Senior Member

Ciao, mi specifichi solo se stai lavorando in C# o in Vb? E che cosa ti restituisce il db?
Comunque credo che il ciclo di if che proponevi sia fattibile, ma ti permetterebbe il confronto di due sole date.
Ragionando in C#, convertirei il testo della prima textbox (nel formato italiano GG/MM/AAAA) e poi applicherei la substring di prima.

PV

Jeremy Profilo | Guru

Scusate se mi intrometto.....ma se state lavorando con le date....perchè volete convertire in String...
Se mai.... i valori vanno convertiti in DateTime.....e NON USANDO Convert.ToString o Convert.ToDatetime .....NO...., ma piuttosto DateTime.Parse()..


Ciao....

paoval72 Profilo | Senior Member

Ciao, in effetti non mi sono spiegato bene.
Io propongo di convertire in datetime il primo valore (che è di tipo text, essendo in una textbox), in modo da avere un'univocità di data (quindi il classico datetime "gg/mm/aaaa"). Poi (ora che mi viene in mente) prenderei solo l'anno della data e lo passerei in stringa alla seconda textbox.
Quindi: (sempre in C#):

Se ad esempio in TextBox1.Text ho "21-1-09":
DateTime time = Convert.ToDateTime(TextBox1.Text); //converto in datetime
TextBox2.Text = Convert.ToString(time.Year); // recupero l'anno del mio datetime

PV

blues66 Profilo | Newbie

ciao, non pensavo di sollevare questo polverone..... grazie quindi per l'assistenza.

Confermo che lavoro in C#

Penso però ad una situazione affine (anche se certo non molto simile), nella quale dovevo far figurare nella TextBox1 una data stringa (per esempio "full" o "empty") in funzione del fatto che in questa TextBox venisse o non venisse inputato un valore. Ho risolto in questo modo direttamente nella parte "ItemTemplate"

Text='<%# (String.IsNullOrEmpty(Convert.ToString(Eval("Text1"))))? "empty":"full" %>'

So che sono due casi differenti, ma pensavo a qualcosa del genere....

Grazie ancora del Vs tempo
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5