2012-04-25 1 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];, указав, что Index вне диапазона. Что может быть неправильным?

ответ

0

Используйте это, чтобы получить индекс:

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

Нет это не work..I все еще получаю ту же ошибку «Индекс находился вне диапазона Должно быть неотрицательным и меньше, чем размер коллекции. . Имя параметра: индекс « – user1181942

+0

Как и для чего вы устанавливаете CommandArgument? Можете ли вы добавить код , который вы используете в свой первоначальный вопрос? – Max