web-dev-qa-db-ja.com

Gridviewセルから値を取得する

GridViewからint値を取得しようとしています。これが私のグリッドビューのスクリーンショットです。

gridview screenshot

ここにGridviewのASPコードがあります

GridViewの[削除]ボタンを押すと、2番目の列のint値が表示されると想定されるRowCommandメソッドを作成しました。たとえば、最後の[削除]ボタンを押すと、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();

    }
}

このコードを実行すると、このエラーが発生します。オブジェクト参照がオブジェクトインスタンスに設定されていません。

たとえば、オブジェクトを新しいオブジェクトとして参照する必要がある方法または理由がわかりません。なぜこれを行う必要があるのですか?

完全なクラスの分離コードは次のとおりです:Pastebin.com/yzLR7s2w

事前に感謝

7
JARRRRG

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);
7
Ryan Frame