В окне панели инструментов проверьте раздел «Данные и аналитика» в меню панели инструментов и перетащите GridControl в форму окна.

Элемент управления Devexpress Grid использует представления для представления данных из связанного источника данных. С помощью представлений можно по-разному управлять внешним видом и поведением записей и полей с различными форматами отображения и параметрами редактирования. Доступны различные типы представлений, такие как GridView, BandedGridView, AdvBandedGridView, LayoutView, CardView и т. д., которые в основном наследуются от BaseView и его потомка, абстрактного ColumnView.

Мы можем управлять внешним видом, поведением и множеством других настроек через окно дизайнера управления сеткой, которое появляется, когда мы нажимаем кнопку «Запустить дизайнер». Настройками также можно управлять во время выполнения представления, над которым мы работаем.

Доступ к представлению, применяемому в настоящее время к сетке, можно получить из элемента управления сеткой MainView для отображения необходимых данных и управления настройками сетки.

Ниже приведен скриншот окна дизайнера, у нас есть различные типы разделов компонентов для управления поведением сетки, такие как представления, столбцы, браузер функций и т. д.

Существуют различные режимы привязки, такие как наборы данных ADO.NET. Поддерживаются данные SQL, данные Entity Framework, данные XML, источники данных Excel, LinQ To SQL и т. д.

В приведенном ниже коде показано использование экземпляров объекта списка в качестве источника данных, и мы привязываем источник данных списка во время выполнения следующим образом:
public class Company
{
public Guid CompanyId { get; set; }
public string CompanyName { get; set; }
public string Status { get; set; } // Active/Inactive
public string Street { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
public string Country { get; set; }
public string Phone { get; set; }
public string Fax { get; set; }
public string Email { get; set; }
public string WebAddress { get; set; }
}

Привязка столбцов и источника данных в Grid Control:

Допустим, gridControlCompanyList — это имя сетки, а затем мы можем установить источник данных элемента управления сеткой следующим образом:
gridControlCompanyList.DataSource = companyList;
//companyList is object instance of List<Company>

Мы можем связать и управлять форматом отображения столбцов, используя Доступ к MainView с типом GridView показан в следующем
фрагменте кода:
GridView view = gridControlCompanyList.MainView as GridView;
GridColumn column1 = view.Columns.Add();
column1.Caption = "CompanyId";
column1.FieldName = "CompanyId";
column1.Visible = false;
GridColumn column2 = view.Columns.Add();
column2.Caption = "Company Name";
column2.FieldName = "CompanyName";
column2.Visible = true;
column2.Width = 300;
GridColumn column3 = view.Columns.Add();
column3.Caption = "Is Active?";
column3.FieldName = "CompanyId";
column3.Visible = true;
column3.Width = 300;

Настройка столбца:

Мы можем настроить отображение содержимого столбца на основе некоторых критериев или определенного столбца, тогда мы назначим метод обработчика CustomColumnDisplayText Handler представления следующим образом:
view.CustomColumnDisplayText += gridMainView_CustomColumnDisplayText;

Ниже приведен пример метода, прикрепленного к CustomColumnDisplayText Handler представления, представляющего использование отображаемого пользовательского текста для пользователя.
private void gridMainView_CustomColumnDisplayText(object sender, CustomColumnDisplayTextEventArgs e)
{ if (e.Column.FieldName == "Status")
{
e.DisplayText = e.Value.ToString().ToLower() == "active" ?"Yes":"No";
}
}

Здесь исходный текст столбца настраивается для отображения yes/no вместо Active/ Неактивный.

Настройка стиля строки
Точно так же мы можем настроить внешний вид строки на основе критериев, определенных на основе данных записи. Для этого мы будем использовать дескриптор RowStyle представления сетки.
view.RowStyle += gridMainView_RowStyle;
Нижеприведенный пример прикрепленного метода к дескриптору RowStyle представляет базовую
private void gridMainView_RowStyle(object sender,DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
{
GridView View = sender as GridView;
if (e.RowHandle >= 0)
{
String status = Convert.ToString(
View.GetRowCellDisplayText(e.RowHandle, View.Columns["Status"]));
// We need to take care in case text is customized, like we shown in previous sample code
//with yes/no
if (status.ToLower() == "inactive" || status.ToLower() == "no")
{
e.Appearance.BackColor = Color.Salmon;
e.Appearance.BackColor2 = Color.SeaShell;
e.HighPriority = true;
}
}
}

обработку множественного выбора записей:
Чтобы разрешить множественный выбор строк с помощью флажков, необходимо установить следующие свойства для OptionsSelection в представлении.
MultiSelectMode = CheckBoxRowSelect, MultiSelect = True

Мы можем получить выбранные записи из сетки следующим образом:-
public List<Company> GetSelectedCompanies()
{
List<Company> selectedCompanies = new List<Company>();
ColumnView view = gridControlCompanyList.MainView as ColumnView;
Int32[] selectedRowHandles = view.GetSelectedRows();
for (int i = 0; i < selectedRowHandles.Length; i++)
{
int selectedRowHandle = selectedRowHandles[i];
if (selectedRowHandle >= 0)
selectedCompanies.Add(view.GetRow(selectedRowHandle) as Company);
}
return selectedCompanies;
}

С такой настройкой сетка будет выглядеть так:

Красные строки обозначают компании с неактивным статусом.

Webner Solutions — компания по разработке программного обеспечения, специализирующаяся на разработке систем управления страховыми агентствами, систем управления обучением и приложений Salesforce. Свяжитесь с нами по адресу [email protected] для подачи заявок на страхование, электронное обучение и Salesforce.

Первоначально опубликовано на https://blog.webnersolutions.com 10 сентября 2021 г.