2012-04-25 122 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中啓用分頁。當我想編輯記錄時,我點擊特定的單元格,然後我可以編輯記錄。然而,當我在第二頁上,當我點擊一個單元格來編輯記錄時,我在第currentRow = sourceGrid.Rows[currentIndex];行發生錯誤,說索引超出範圍。 什麼可能是錯的?

回答

0

使用此獲得指數:

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

不,這並不work..I我仍然得到同樣的錯誤「索引超出範圍必須大於集合的大小非負少。 。 參數名稱:索引「 – user1181942 2012-04-25 11:56:08

+0

你是如何設置CommandArgument的?你可以添加你正在使用的原始問題的代碼嗎? – Max 2012-04-25 14:20:45