Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Cancello e poi rimango alla pagina...

    Cancello il record, ma se non sono alla prima pagina, voglio ritornare dove ero:

    Per cui aggiungo la variabile pagina e la risetto alla fine,ma..
    1) NON VA, torna sempre alla prima pagina
    2) se sono all'ultima pagina e questa contiene solo 1 record, cancellandolo dovrei tornare all'ultima pagina, che era cioè la penultima. COME?

    Sub DataGrid_Delete(Sender As Object, E As DataGridCommandEventArgs)

    ' delete the selected row

    If Not isEditing Then
    'memorizza la pagina
    dim pagina as integer
    pagina= datagrid1.CurrentPageIndex
    response.write (cstr(pagina))
    ' the key value è l'ID della riga e cioè del record
    Dim keyValue As String = CStr(DataGrid1.DataKeys(e.Item.ItemIndex))


    ' TODO: update the Command value for your application
    Dim myConnection As New OledbConnection(ConnectionString)
    Dim DeleteCommand As New OledbCommand("DELETE from Autore where idautore=" & keyValue , myConnection)

    ' execute the command
    myConnection.Open()
    DeleteCommand.ExecuteNonQuery()
    myConnection.Close()

    ' rebind the grid
    DataGrid1.CurrentPageIndex = 0
    DataGrid1.EditItemIndex = -1
    BindGrid()

    datagrid1.CurrentPageIndex =Convert.ToInt32(pagina)

    End If


    End Sub

  2. #2
    Mi sono accorto che non andava perché non facevo di nuovo il bind, per cui il primo problema è ok. Però se sono all'ultima pagina e cancello l'ultimo record mi va in errore perché tenta di impostare una pagina superiore al PageCount del grid

    Sub DataGrid_Delete(Sender As Object, E As DataGridCommandEventArgs)

    ' delete the selected row

    If Not isEditing Then
    'memorizza la pagina
    dim pagina as integer
    pagina= datagrid1.CurrentPageIndex

    ' the key value è l'ID della riga e cioè del record
    Dim keyValue As String = CStr(DataGrid1.DataKeys(e.Item.ItemIndex))


    ' TODO: update the Command value for your application
    Dim myConnection As New OledbConnection(ConnectionString)
    Dim DeleteCommand As New OledbCommand("DELETE from Autore where idautore=" & keyValue , myConnection)

    ' execute the command
    myConnection.Open()
    DeleteCommand.ExecuteNonQuery()
    myConnection.Close()

    ' rebind the grid
    if pagina>datagrid1.PageCount-1 then
    pagina=pagina-1
    end if
    datagrid1.CurrentPageIndex =Convert.ToInt32(pagina)
    DataGrid1.EditItemIndex = -1
    BindGrid()



    End If


    End Sub


  3. #3
    RISOLTO: prima del nuovo rebind e dopo la cancellazione inserire questo

    'ricalcola il numero di pagina

    if datagrid1.items.count mod datagrid1.pagesize = 1 and datagrid1.currentpageindex > 0 then
    pagina = datagrid1.pagecount -2
    end if


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.