Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Vailfox
    Registrato dal
    Feb 2005
    Messaggi
    320

    Popolare DataGrid e Update OdbcDataAdapter

    Ciao a tutti,


    ho una tabella nel db mysql denominata "utenti_registrati" (id, nome, cognome, abilitato)
    il campo abilitato può essere o 0 o 1.

    devo popolare un datagrid con le stesse colonne della tabella, e aggiungere una colonna con delle checkbox che mi permettano di abilitare o meno un utente.

    a questo punto, creo un pulsante al di fuori del datagrid che rilegge tutte le righe del datagrid e apporta le modifiche alla tabella del db. In questo caso deve solo impostare il campo "abilitato" a 1 se la checkbox di quella riga e selezionata, a 0 viceversa.


    Ho già provato del codice e ottengo vari errori. per evitare confusione non posto nulla ma vi dico che devo utilizzare odbcDataAdapter. Conosco già i datagrid e come mettere le checkbox nella colonna. Mi servono solo le procedure per selezionare, updatare i dati e anche la procedura che tramite l'evento datagrid.itemcreated mi seleziona la checkbox se il campo tabella è 1.

    attendo vostre utili soluzioni.

    ps: dimenticavo, utilizzo vb.net, ma esempi di c# vanno bene lo stesso

  2. #2
    Utente di HTML.it L'avatar di Vailfox
    Registrato dal
    Feb 2005
    Messaggi
    320
    Magicamente ho risolto il problema sostituendo dg_abilitati.load con dg_abilitati.Init

    ecco il codice

    codice:
    Public Class adm_abilitazione_professionisti_area_clienti
        Inherits Page
    
        'Private conn As New connessione_db
    
        Protected WithEvents dg_abilitati As DataGrid
        Protected WithEvents lb_aggiorna As LinkButton
        Protected txb_avviso As Label
    
        Private ds As New DataTable
        Dim constring As String = "DSN=dyEngV2"
        Dim connessione As New OdbcConnection(constring)
        Dim adp As New Odbc.OdbcDataAdapter
    
    
    
        Protected Sub Page_Load() Handles Me.Load
            If Session("granted") = False Then
                Server.Transfer("login.aspx")
            End If
    
            If Me.IsPostBack = False Then
                txb_avviso.Visible = False
    
            End If
        End Sub
    
    
    
        Protected Sub Popola_dg_abilitati() Handles dg_abilitati.Init
            ' conn.query = "Select * from utenti_registrati where idsite='" & Session("idsite") & "' and azienda<>''"
            'Dim ds As DataSet = conn.esegui
    
            adp.SelectCommand = New OdbcCommand("Select * from utenti_registrati where idsite='" & Session("idsite") & "' and azienda<>''")
            adp.SelectCommand.Connection = connessione
            Dim cb As New OdbcCommandBuilder(adp)
            adp.Fill(ds)
    
            dg_abilitati.DataSource = ds
            dg_abilitati.DataKeyField = "id"
            dg_abilitati.DataBind()
        End Sub
    
    
    
    
        Protected Sub Aggiorna_Dati() Handles lb_aggiorna.Click
    
            For Each row As DataGridItem In dg_abilitati.Items
                If row.ItemType = ListItemType.AlternatingItem Or row.ItemType = ListItemType.Item Then
                    Dim ckb As CheckBox = row.Cells(5).FindControl("ckb_abilitato")
                    If ckb.Checked = True Then
                        ds.Rows(row.ItemIndex)("abilitato") = "1"
                    Else
                        ds.Rows(row.ItemIndex)("abilitato") = "0"
                    End If
                End If
            Next
    
            adp.Update(ds)
    
        End Sub
    
    
    
        Protected Sub Dg_abilitati_DataBound(ByVal sender As DataGrid, ByVal e As DataGridItemEventArgs) Handles dg_abilitati.ItemCreated
            If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
                Dim ckb As CheckBox = e.Item.Cells(5).FindControl("ckb_abilitato")
                If ds.Rows(e.Item.ItemIndex)("abilitato") = "1" Then
                    ckb.Checked = True
                Else
                    ckb.Checked = False
                End If
            End If
        End Sub
    
    End Class

    Esiste un modo per fare le cose più pulite e con meno codice?? Qual'è la regola darte da seguire per questo esempio??

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 © 2025 vBulletin Solutions, Inc. All rights reserved.