Получить дочерние строки от UltraGrid - PullRequest
1 голос
/ 10 февраля 2011

У меня есть отношение мастер / детали в UltraGrid. И я хочу показать дочерние строки в новом UltraGrid, когда пользователь нажимает на строку. Как я могу сделать? Спасибо

1 Ответ

1 голос
/ 14 февраля 2011

Вы можете обработать события AfterRowActivate или AfterRowSelected первой сетки, а затем либо заполнить вторую сетку соответствующими данными. Если у вас есть данные обо всех родительских строках во второй сетке, вы также можете настроить фильтр столбцов следующим образом:

private void ugParent_AfterRowActivate(object sender, EventArgs e)
{
  if (this.ugParent.ActiveRow != null)
  {
    //either populate the grid with data specific to the current row:
    //this.ugChilds.DataSource = this.GetChildData(this.ugParent.ActiveRow);
    //or filter the grid
    object key = this.ugParent.ActiveRow.Cells["IDField"].Value;
    this.ugChilds.DisplayLayout.Bands[0].ColumnFilters["RelationField"].FilterConditions.Add(FilterComparisionOperator.Equals, key);
  }
  else
  {
    //clear Child grid if required. If you set datasource to null you will loose all layout and need to relayout the grid on next binding
  }
}

Если вы используете ColumnFilters, не забудьте повторно использовать существующие фильтры или очистить условия фильтра перед добавлением новых условий фильтра.

...