2013-03-20 18 views
6

Sto cercando di ottenere un valore int da un GridView. Ecco lo screenshot del mio gridview.Ottenere il valore da una cella Gridview

gridview screenshot

Ecco il codice ASP per il GridView

ho creato un metodo RowCommand in cui quando si preme il pulsante Rimuovi sulla GridView è supponiamo di darmi l'int valore della 2a colonna. Così, per esempio, se sono stato a premere il pulsante Rimuovi ultima che mi avrebbe dato un valore int di 5.

Questo è il mio codebehind per il metodo

protected void grdOrder_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "Remove") 
    { 

     int bigStore = Convert.ToInt32(grdOrder.SelectedRow.Cells[2].Text); 

     clsStockCollection AnId = new clsStockCollection(); 

     clsStock TheOrder = new clsStock(); 
     TheOrder.OrderId = bigStore; 
     AnId.DeleteOrder(TheOrder); 
     DataCall(); 

    } 
} 

Quando eseguo questo codice ottengo questo errore. Riferimento oggetto non impostato su un'istanza di un oggetto.

Non capisco come o perché ho bisogno di fare riferimento ad un oggetto ad esempio: Oggetto come nuovo oggetto. Perché devo fare questo?

Ecco la codebehind per la classe completa: pastebin.com/yzLR7s2w

Un grazie in anticipo

+0

Quale riga lancia l'eccezione? –

+0

Riga 46: int bigStore = Convert.ToInt32 (grdOrder.SelectedRow.Cells [2] .Text); – JARRRRG

risposta

7

SelectedRows restituisce solo le righe che sono stati selezionati; senza una selezione non otterrai nulla. Invece di int bigStore = Convert.ToInt32(grdOrder.SelectedRow.Cells[2].Text); provare:

int rowIndex = Convert.ToInt32(e.CommandArgument); // Get the current row 
int bigStore = Convert.ToInt32(grdOrder.Rows[rowIndex].Cells[2].Text); 
Problemi correlati