-3

グリッドビューの行コマンドの編集と削除を使用しています。前述のように、特定の行データがテキストボックスに表示されるリンクをクリックすると。

最初のループは機能していますがe.CommandName == "deletevalue"、エラーを表示するためです

インデックスが範囲外でした。負ではなく、コレクションのサイズより小さくなければなりません

protected void GrdBuilding_RowCommand(object sender, GridViewCommandEventArgs e)
    {

        int index = Convert.ToInt32(e.CommandArgument);
        if (e.CommandName == "editvalue")
        {

            TxtBuildingid.Text = GrdBuilding.Rows[index].Cells[1].Text;
            TxtBuildingCode.Text = GrdBuilding.Rows[index].Cells[2].Text;
            TxtBuildingName.Text = GrdBuilding.Rows[index].Cells[3].Text;
            DrpBuilding.Text = GrdBuilding.Rows[index].Cells[4].Text;
            if (GrdBuilding.Rows[index].Cells[5].Text.ToString() == "True")
            {
                ChkisActive.Checked = true;
            }
            else
            {
                ChkisActive.Checked = false;
            }

            BtnSave.Text = "Update";
        }



        else if (e.CommandName == "deletevalue")
        {
            TxtBuildingid.Text = GrdBuilding.Rows[index].Cells[1].Text;
            TxtBuildingCode.Text = GrdBuilding.Rows[index].Cells[2].Text;
            TxtBuildingName.Text = GrdBuilding.Rows[index].Cells[3].Text;
            DrpBuilding.Text = GrdBuilding.Rows[index].Cells[4].Text;
            if (GrdBuilding.Rows[index].Cells[5].ToString() == "True")
            {
                ChkisActive.Checked = true;
            }
            else
                ChkisActive.Checked = false;
            }

            BtnSave.Text = "Delete";
        }
4

1 に答える 1

2

問題はあなたが示したコードにはないため、「これを行うとうまくいく」という観点からこの質問に答えることができません。

問題を見つけるために何ができるかという点で答えようとします。

コードをデバッグする必要があります。これは基本的な手順であり、あなたの質問を読んだとき、あなたはそれを行っていないように思えます。

  1. 私にとっての最初のステップはelse if、IDE の行にブレークポイントを設定することです。

  2. 実行がそこで停止したら、の値を確認しますe.CommandArgument

    ==>間違っているか未定義ですか?

  3. GrdBuilding_RowCommand(...)さて、呼ばれた場所に戻ります。どこe.CommandArgumentから来るの?値の設定方法に関するロジックに問題があるはずです。

そこで問題を見つけるか、コード内で何かが発生する別のポイントを見つけますが、それはあなたには明らかではありません。そこに新しいブレーク ポイントを設定し、コードをステップ実行して、作成プロセスを監視しますe.CommandArgument

于 2012-08-14T06:15:25.783 に答える