Datagridview

martedì 22 aprile 2008 - 16.00

puccetta Profilo | Newbie

Ho un grosso problema, ho un datagridview che carico tramite una tabella, all'interno del quale una delle colonne è di tipo datetime. Vorrei che ogni qualvolta aggiungo una nuova riga editabile, la colonna datetime abbia la struttura di default " / / ". Il massimo sarebbe inserire una maskedtextbox all'interno del datagridview, ma credo che sia impossibile.Grazie, e spreso di essere stata chiara.

freeteo Profilo | Guru

ciao,
per dare una formattazione del testo che vedi dentro alle celle della GridView, devi impostare la proprieta' "DefaultCellStyle->Format" della colonna che vuoi, con un formato che ti interessa (nel tuo caso "dd/MM/yyyy").

A questo punto vedi che per tutte le righe, la colonna "data" (che punta ad una proprieta' di tipo "DateTime") della tabella verranno scritte con il formato impostato.
Lo puoi cambiare ovviamente a tuo piacere.

Per mettere un componente particolare dentro ad una cella, lo puoi fare, ma è 1po piu' complicato, ovvero dovresti implementare un'interfaccia, creare una classe che eredita da DataGridViewColumn etc...vedi se ti puo' bastare la sola formattazione intanto...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

puccetta Profilo | Newbie

..purtroppo non va, forse sbaglio qualcosa. Grazie ugualmente.

freeteo Profilo | Guru

ciao,
ti ho allegato un esempio 1po piu' complesso come ti dicevo, devi farti una classe che estenda la colonna base della Gridview in modo da poterla mettere come colonna della tua datagridview.
Questa colonna "ColonnaDateTime" ha come cella una cella particolare "CellaDateTime" dove il suo "EditTemplate" è quello che gli dici tu ovvero una MaskedTExtBox.
Per essere pero' visibile dentro alla griglia, deve anche implementare "IDataGridViewEditingControl" ovvero quello che serve per far si che venga usata per editare quando l'utente edita in griglia, ma estenda una MaskedTextBox, in poche parole un'altra classe ancora "MiaMaskedTextBox".

E' 1po contorto da spiegare a parole, fai prima a vedere l'esempio che è abbastanza chiaro, cmq i concetti sono semplici in se, il problema è che come vedrai devi scrivere 1po di codice...

Cmq parti da questo esempio, e adattalo 1po alle tue esigenze, dovresti riuscire senza problemi.

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
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