2013-07-17 6 views
0

У меня есть gridview с группой групп в нем. У меня также есть кнопки вверх/вниз, которые перемещают datarows внутри групп вверх/вниз. Если datarow - последняя строка в группе, я не хочу, чтобы строка ничего не делала, когда пользователь нажимает кнопку «вниз». Как я могу проверить, является ли строка данных последней строкой в ​​группе?Как найти последнюю строку группы в gridview DevExpress?

ответ

1

Вы можете попробовать это

int rowHandle = view.FocusedRowHandle; 
int groupRow = view.GetParentRowHandle(rowHandle); 
var childRows = GetChildRowsHandles(view, groupRow); 
if (childRows.Count > 0 && childRows.Last() == rowHandle) 
{ 
    //selected row is the last datarow of its GroupRow 
} 

public List<int> GetChildRowsHandles(GridView view, int groupRowHandle) 
    { 
     List<int> childRows = new List<int>(); 

     if (!view.IsGroupRow(groupRowHandle)) 
     { 
      return childRows; 
     } 

     int childCount = view.GetChildRowCount(groupRowHandle); 
     for (int i = 0; i < childCount; i++) 
     { 
      int childHandle = view.GetChildRowHandle(groupRowHandle, i); 
      if (view.IsDataRow(childHandle)) 
      { 
       if (!childRows.Contains(childHandle)) 
        childRows.Add(childHandle); 
      } 
     } 

     return childRows; 
    } 

Примечание: Я не проверял код. попробуйте.

+0

Это имеет смысл. Я новичок в группах, но этот способ работает именно так, как я этого хотел. Спасибо! –

Смежные вопросы