Отображение количества записей в DevExpress XtraGrid v12.2

#c# #asp.net #devexpress #aspxgridview #xtragrid

#c# #asp.net #devexpress #aspxgridview #xtragrid

Вопрос:

Ниже приведена часть моего базового EntityList класса, которая содержит сетку. Позже сетка будет заполнена столбцами и строками в зависимости от дочерних объектов. Мне нужно показать количество строк в нижнем колонтитуле сетки, и поэтому я использую TotalSummary .

 <dx:ASPxGridView runat="server" ID="grdMain" ClientInstanceName="grid" 
        KeyFieldName="ID" AutoGenerateColumns="false">                                   
    <settings showfooter="True"/>
    <TotalSummary>
        <dx:ASPxSummaryItem FieldName="ID" SummaryType="Count"/>
    </TotalSummary>
</dx:ASPxGridView>
 

Проблема в том, что в разных объектах, использующих этот базовый класс, у меня разные имена для ID столбца, такие как InvoiceID CustomerID , и т.д. Итак, как сообщить сетке, что Count я хочу, чтобы она показывала? Даже если бы у меня было то же имя для указанного столбца, этот столбец не был бы виден в сетке, поэтому он TotalSummaryItem показывает количество этого столбца, не будет отображаться в сетке.

Есть ли какой-либо способ сообщить сетке, что мне нужно, чтобы она отображала Count количество строк, а не указанный столбец с фиксированным именем?

Есть идеи, как решить эту проблему??? Большое спасибо!

PS если это поможет, я реализую IListServer в DataObject классе

Ответ №1:

Документация для FieldName property ничего не говорит об этом, но в ней говорится кое-что важное, что может помочь решить проблему.

Используя Custom для значения SummaryType свойства и CustomSummaryCalculate события обработки, вы получаете полный контроль над тем, как вычисляется итоговый элемент. Обработайте событие и посчитайте строки, как хотите.

Другой вариант — добавить элемент сводки в коде, где вы знаете имена столбцов. Я думаю, когда вы создаете сетку и предоставляете ее данные, вы можете найти имя нужного столбца.

Комментарии:

1. К сожалению, мне все еще нужно привязать пользовательскую сводку к столбцу: <dx:ASPxSummaryItem FieldName="???" SummaryType="Custom"/>

2. Что происходит, когда вы оставляете его пустым?

3. По-прежнему ничего не происходит. Field Name должно быть заполнено существующим именем поля.