Se o DataGrid usar paginação, a última página pode não ser "página inteira", então pode haver problemas com o layout do DataGrid. As linhas restantes serão muito largas e todo o DataGrid ficará feio.
As soluções provavelmente podem ser consideradas a partir de três lugares:
1. Preencha as novas linhas de dados no DataSource.
2. Preencha a nova linha de controle em branco no DataGrid.
3. Use javascript para preencher a nova linha de controle HTML na página da web.
Usei o segundo método No método de resposta do evento de pré-renderização do datagrid, preencha a linha em branco acima da linha de rodapé. O código é o seguinte:
protected virtual void SpiderSurfGrid_PreRender(object sender, System.EventArgs e)
{
DataGridItem dgi;
Célula da tabela System.Web.UI.WebControls.TableCell;
Linha da tabela System.Web.UI.WebControls.TableRow;
Grade DataGrid = (remetente como DataGrid);
if(grid.Controls.Count == 0) retorno;
Tabela System.Web.UI.WebControls.Table = (grid.Controls[0] como System.Web.UI.WebControls.Table);
tablerow = (System.Web.UI.WebControls.TableRow)(table.Controls[1]);
for(int j=this.PageSize+4-table.Controls.Count;j>0;j--)
{
dgi = novo DataGridItem(0,0,ListItemType.Item);
for(int i=0;i<tablerow.Controls.Count;i++)
{
tablecell = novo System.Web.UI.WebControls.TableCell();
dgi.Cells.Add(tabelacélula);
}
tabela.Controls.AddAt(tabela.Controls.Count-2,dgi);
}
}
Explicação: O que é considerado aqui é um datagrid vinculado com linhas de cabeçalho/rodapé/pager e pager abaixo.
O que é estranho é que não consigo adicionar cssstyle a uma linha aqui. Depois que dgi.cssstyle="dumpTableRowClass";
Original de athossmth, indique ao reimprimir.