我正在尝试从GridView获取一个int值。这是我的gridview的截图。
这是Gridview的asp代码
我已经创建了一个RowCommand方法,当我按下GridView上的Remove按钮时,它假设给我第二列的int值。因此,例如,如果我按下最后一个删除按钮,它将给我一个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();
}
}
当我运行此代码时,我收到此错误。 对象引用未设置为对象的实例。
我不明白我需要如何或为什么需要引用一个对象,例如:Object As New Object。为什么我需要这样做?
以下是完整类的代码隐藏:pastebin.com/yzLR7s2w
提前致谢
答案 0 :(得分:7)
SelectedRows
仅返回已选择的行;没有选择你将得不到任何东西。而不是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);