2012-04-25 4 views
1

は私のGridViewの行のコマンドコードがグリッドビューRow_Command問題

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(); 
      } 
     } 
    } 

のように見える私はまた、GridViewのに有効なページングを持っています。レコードを編集したいときは、特定のセルをクリックしてレコードを編集できます。しかし、レコードを編集するためにセルをクリックしたときに2ページ目にいるとき、行番号currentRow = sourceGrid.Rows[currentIndex];のインデックスが範囲外ですとエラーが表示されます。 何が間違っていますか?

答えて

0

使用このインデックスを取得するには、次の

int index = Convert.ToInt32(e.CommandArgument); 
+0

をなし、これはwork..Iはまだインデックスが範囲外だった」同じエラーを取得していない非負とコレクションのサイズよりも小さくなければなりません。 。 パラメータ名:index " – user1181942

+0

CommandArgumentをどのように設定していますか?あなたは元の質問に使用しているコードを追加できますか? – Max

関連する問題