Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    DataGrid a modifica diretta

    Dopo aver letto un post qualche giorno fa, ho visto che si può utilizzare un DataGrid in modalità modifica immediata, con TextBox e DropDown per immettere i dati e controlli di validità per ogni cella e per ogni riga.

    Ma ho il sospetto che la troppa facilità, magari nasconde dei problemi e vorrei perciò il vostro parere :master:

    Pietro

  2. #2
    Cioe' vorresti usare le funzionalita' del datagrid per riempire le textbox in esso contenute mentre per fare il salvataggio? immagino che per fare il salvataggio dovresti trattare i dati inviati allo stesso modo di come si trattavano ad es. con asp quando premento il pulsante di submit si invia l'intera collection di controlli+dati presente nel form.
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da riccardone
    Cioe' vorresti usare le funzionalita' del datagrid per riempire le textbox in esso contenute mentre per fare il salvataggio? immagino che per fare il salvataggio dovresti trattare i dati inviati allo stesso modo di come si trattavano ad es. con asp quando premento il pulsante di submit si invia l'intera collection di controlli+dati presente nel form.
    Allora, tutto è nato da un post precedente (credo che sia intervenuto pure tu). In pratica ho scoperto che il DataGrid, utilizzando i TemplateColumn, può essere presentato direttamente con campi editabili. Perciò, uso un TextBox per i campi normali, e un DropDownList per scelte obbligate in una chiave esterna.
    Poi ho aggiunto, un classico ButtonColumn per cancellare la riga ed, esternamente, un pulsante di salvataggio dati ed un pulsante di inserimento nuova riga. Inoltre, tutte le celle hanno i loro controlli di validità, per esempio CompareValidator.

    La faccenda, ripeto, è, da un lato funziona magnificamente, da l'altro lato, non ho visto mai un uso simile :master: da cui la mia domanda.

    Pietro

  4. #4
    Originariamente inviato da pietro09
    ...da un lato funziona magnificamente, da l'altro lato, non ho visto mai un uso simile :master: da cui la mia domanda.
    beh... in pratica come detto nel mio post precedente usi solo in parte le funzionalita' della datagrid dopo di che immagino che raccogli i dati inseriti similmente a come si fa con un normale form html per giunta dovrai anche cercare il nome di ogni controllo facendo accrocchi di varia natura. Non credo un uso simile sia semplice documentarlo e proporlo come utilizzo diffuso della datagrid.
    Saluti a tutti
    Riccardo

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da riccardone
    beh... in pratica come detto nel mio post precedente usi solo in parte le funzionalita' della datagrid dopo di che immagino che raccogli i dati inseriti similmente a come si fa con un normale form html per giunta dovrai anche cercare il nome di ogni controllo facendo accrocchi di varia natura. Non credo un uso simile sia semplice documentarlo e proporlo come utilizzo diffuso della datagrid.
    carissimo Riccardo, la mia domanda (forse un po' stupida) nasce dal fatto che non uso proprio un acrocchio ma uso solo istruzioni notissime usate nei DataGrid.
    Per esempio, per recuperare i dati dalla griglia, nell'evento click di un un pulsante faccio semplicemente la scansione delle righe del DataGrid, cioè

    For Each riga In Me.DataGrid1.Items
    ***

    i dati vengono recuperati nei due modi conosciuti, o con

    Dim testo As TextBox = DirectCast(riga.Cells(2).Controls(1), TextBox)

    o con

    Dim [double] As TextBox = DirectCast(riga.FindControl("double"), TextBox)

    oppure per un DropDown
    Dim chiave_esterna As DropDownList = DirectCast(riga.Cells(3).Controls(1), DropDownList)

    e vengono salvati nel solito modo (a proposito, questo me lo hai suggerito tu e funziona benessimo)

    comando.Parameters.Add("chiave_esterna", OleDbType.VarChar, 50).Value = Libreria.StringNullToDBNull(chiave_esterna.Selecte dValue)


    comunque, provaci e mi dirai
    Pietro

  6. #6
    Originariamente inviato da pietro09 comunque, provaci e mi dirai
    Se dovessi averne la necessita' lo provero'.
    Saluti a tutti
    Riccardo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.