2013-03-20 60 views
6

我试图从GridView获取一个int值。这是我的gridview的屏幕截图。从Gridview单元获取价值

gridview screenshot

这里是我创建了一个RowCommand方法,其中当我按在GridView上它是假设删除按钮给我INT为GridView

ASP代码第二列的值。因此,举例来说,如果我是按最后一个删除按钮它会给我的5

int值这是我隐藏的方法

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(); 

    } 
} 

当我运行这段代码我得到这个错误。 未将对象引用设置为对象的实例。

我不明白如何或为什么我需要引用一个对象,例如:对象作为新对象。为什么我需要这样做?

下面是完整的类代码隐藏:pastebin.com/yzLR7s2w

提前

+0

哪条线抛出异常? – 2013-03-20 00:05:54

+0

第46行:int bigStore = Convert.ToInt32(grdOrder.SelectedRow.Cells [2] .Text); – JARRRRG 2013-03-20 00:08:03

回答

7

SelectedRows只返回已选定列A感谢;没有选择,你不会得到任何东西。而不是int bigStore = Convert.ToInt32(grdOrder.SelectedRow.Cells[2].Text);尝试:

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