1

私のgridview Rowコマンドコードは次のようになります

protected void GridView_Admins_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        GridView sourceGrid = sender as GridView;

        int currentIndex = 0;
        GridViewRow currentRow = null;

        if (string.Compare(e.CommandName, "SHOW", true) == 0)
        {
            if (int.TryParse(e.CommandArgument.ToString(), out currentIndex))
            {

                currentRow = sourceGrid.Rows[currentIndex];

                if (long.TryParse(sourceGrid.DataKeys[currentRow.RowIndex].Values["EmployeeID"].ToString(), out this.employeeId))
                    this.ShowAdministrativeRightsForUser();
            }
        }
    }

また、グリッドビューでページングを有効にしています。レコードを編集したいときは、特定のセルをクリックすると、レコードを編集できます。ただし、セルをクリックしてレコードを編集するときに2ページ目にいると、行でcurrentRow = sourceGrid.Rows[currentIndex];インデックスが範囲外であるというエラーが発生します。何が間違っている可能性がありますか?

4

1 に答える 1

0

これを使用してインデックスを取得します。

int index = Convert.ToInt32(e.CommandArgument);
于 2012-04-25T07:22:27.060 に答える