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??

Rispondi quotando