7

我正在尝试从 GridView 获取 int 值。这是我的网格视图的屏幕截图。

网格视图截图

这是 Gridview 的 asp 代码

我创建了一个 RowCommand 方法,当我按下 GridView 上的 Remove 按钮时,它应该给我第二列的 int 值。因此,例如,如果我要按下最后一个 Remove 按钮,它会给我一个 int 值 5。

这是我的方法的代码隐藏

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

提前致谢

4

1 回答 1

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);
于 2013-03-20T00:17:34.323 回答