Indice fuori del campo Errore di quando si utilizza row.FindControl all'interno di un evento rowcommand Asp.net GridView con paginazione Abilitato

StackOverflow https://stackoverflow.com/questions/751614

Domanda

Il seguente codice funziona alla grande su Pagina 1 di dati all'interno di un controllo GridView Asp.net:

     If e.CommandName = "Void" Then

        'Read the status of the ticket currently
        Dim RowIndex As Integer = CInt(e.CommandArgument)
        Dim row As GridViewRow = grdTradeTickets.Rows(RowIndex)

        Dim lblTransactionID As Label = DirectCast(row.FindControl("lblTransactionID"), Label)
        Dim lblTtStatus As Label = DirectCast(row.FindControl("lblTtStatus"), Label)
        Dim lblTradeTicketID As Label = DirectCast(row.FindControl("lblTradeTicketID"), Label)

        'If already void, show "Already Void" message to user. Else continue "Are you sure you want to void this Trade Ticket?"
        If lblTtStatus.Text = "Void" Then

            mdlPopupAlready.show()

        Else

            mdlPopup.Show()
            lblTradeTicketIdToVoid.Text = lblTradeTicketID.Text

        End If

    End If

Tuttavia, se l'utente fa clic sul pulsante "Void" in ogni pagina successiva, è gettato il seguente errore:

"indice era fuori portata Deve essere non negativo e inferiore alla dimensione della collezione Nome del parametro:.. Indice"

Non è come l'indice è nullo o qualcosa del genere. Ha un valore. Pensieri?

È stato utile?

Soluzione

Provare a sostituire le linee:

Dim RowIndex As Integer = CInt(e.CommandArgument)
Dim row As GridViewRow = grdTradeTickets.Rows(RowIndex)

con

Dim row As GridViewRow = DirectCast(DirectCast(e.CommandSource, Control).Parent.Parent, GridViewRow)

Altri suggerimenti

stavo affrontando lo stesso problema. Poi si è rivelato essere il problema con SubString Method (). Quello che stavo facendo mi è stato sempre la sottostringa da una stringa utilizzando indice. Come

MyString.Substring (3, 6);

e in myString, ero di passaggio "abc" si intende la stringa di lunghezza era 3. Cercare un codice che sta utilizzando stringa o la raccolta e cercare di eseguire il debug. Acclamazioni:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top