Можно ли сделать последнюю строку DataGridView
в качестве суммы столбцов и что последняя строка всегда будет отображаться/заморожена?
Заморожена последняя строка DataGridView как сумма столбцов?
Ответ 1
Решение на самом деле очень простое, и вам просто нужно немного подумать за пределами коробки.
Обычно, как только данные загружаются в ваш вид сетки, в нижней части находится темно-серый ряд:
Вы можете использовать это пространство в своих интересах. Все, что вам нужно сделать, это перетащить несколько меток на вашу форму, размещенную прямо внутри вашего вида сетки, с нанесенным фоном:
В вашем коде добавьте такой метод:
void UpdateTotal(Label Label, int Number)
{
// Called from another thread; facilitate safe cross-thread operation
if(this.InvokeRequired)
this.Invoke(new Action<Label, int>(UpdateTotal), new object[] {Label, Number});
// Called from this thread or invoked
else
// Format the number with a thousands separator
Label.Text = Number.ToString("N0");
}
Затем, когда вы обновляете представление сетки, вызовите UpdateTotal(labelPostsAffected, 2000);
, используя имя вашей метки и сумму, которую вы вычислили (или вычислите в методе).
Результат выглядит примерно так:
Ответ 2
Да, это возможно. Во-первых, вам нужно пройти через сетку и вычислить сумму требуемых столбцов после вычисления сумм вам нужно создать новый DataGridRow и заполнить его вычисленными значениями, установите для свойства Frozen DataGridRow значение True, а затем добавьте новый DataGridRow в Datagridview. Значения столбцов сумм в DataGridView
Вместо создания нового DataGridRow вы можете просто добавить новую строку с суммированными значениями в свой источник данных, а затем найти последнюю строку в своем DataGrid и установить свойство этой строки Frozen = True
Ответ 3
Для этого вам нужно установить атрибут ShowFooter True
а затем в коде позади добавить ваше значение желания в нижнем колонтитуле
<asp:GridView ID="grdList" runat="server" ShowFooter="True" >
// other part of gridview codes e.g columns or blah blah blah
</asp:GridView>
// in code-behind
int totalValue = 2 * 10;
grdList.Columns[2].FooterText = totalValue.ToString();