7

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

gridviewスクリーンショット

これがGridviewのaspコードです

私はRowCommandメソッドを作成しました。このメソッドでは、GridViewの[削除]ボタンを押すと、2番目の列のint値が表示されるはずです。したがって、たとえば、最後の[削除]ボタンを押すと、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 AsNewObject。なぜこれを行う必要があるのですか?

フルクラスのコードビハインドは次のとおりです: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 に答える