В Gridview вы можете использовать событие RowCreated, чтобы полностью «уничтожить» и воссоздать верхний и / или нижний колонтитулы. Во время этого события проверьте:
if (e.Row.RowType = DataControlRowType.Header)
{
// At this point you have access to e.Row.Cells
// You can now empty the collection and recreate it.
// If you create a singular cell in the collection
// you can then make its ColumnSpan reach across
// the length of the entire table. Then inside this
// cell you can add any set of controls you want.
// I've used this method to combine column headers
// and add specialty controls that simply wouldn't
// working using the HeaderTemplate
}
Поскольку это делается в RowCreated, во время RowDataBound у вас будет доступ к этим элементам управления, а затем вы сможете манипулировать ими по своему усмотрению на основе данных. Это удобно для выполнения сложных вычислений в нижнем колонтитуле, настройки изображений в верхнем колонтитуле на основе сортировки и т. Д.