Devexpress - Как мне основать данные Gridcontrol на отсортированных / отфильтрованных данных из другого GridControl? - PullRequest
1 голос
/ 16 июня 2011

У меня есть два GridControls в моей форме. Одним из них является довольно большой набор данных, включая столбец с именем Score. Я хочу, чтобы мой другой GridControl показывал подмножество этого (например, Top 3 и Bottom 3 на основе значений Score).

Как мне лучше всего это сделать? Если бы это был тот же самый GridControl, я думаю, что я мог бы просто использовать другое представление, но, поскольку оно полностью отделено, нужно ли мне просто взять копию представления, отфильтровать / отсортировать данные и отобразить их как новый набор данных? Или есть способ связать данные моего второго GridControl с данными моего первого?

edit: Я мог бы сделать grid2.datasource = grid1.datasource и перейти оттуда. Там не будет никаких динамических обновлений таблицы, так что, может быть, это путь?

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Нет необходимости создавать новый DataView. Обратите внимание на событие CustomRowFilter gridview.

Используйте e.ListSourceRow, чтобы получить строку в таблице данных.

Итак, если вы хотите, чтобы строки со значением> 25 отображались, а остальные скрывались

gridView_CustomRowFilter(object sender, RowFilterEventArgs e)
{
      if(dataset.datatable[e.ListSourceRow]["ColumnName"] < 25)
      {  
          e.visible = false;
          e.handled = true;
      }
}
1 голос
/ 16 июня 2011

Я бы использовал следующий подход:

1) создайте новый DataView, отфильтруйте его на основе вашего подхода и установите второй источник данных gridControl для этого DataView;

ИЛИ

2) установите для свойства DataSource второго GridControl то же значение и отфильтруйте соответствующий GridView.

...