Jika DataGrid menggunakan paging, halaman terakhir mungkin bukan "halaman penuh", jadi mungkin ada masalah dengan tata letak DataGrid. Baris yang tersisa akan terlalu lebar, dan seluruh DataGrid akan menjadi jelek.
Solusi mungkin dapat dipertimbangkan dari tiga hal:
1. Isi baris data baru di DataSource.
2. Isi baris kontrol kosong baru di DataGrid.
3. Gunakan javascript untuk mengisi baris kontrol html baru di halaman web.
Saya menggunakan metode kedua. Pada metode respon event prerender datagrid, isi baris kosong di atas baris footer. Kodenya sebagai berikut:
protected virtual void SpiderSurfGrid_PreRender(object sender, System.EventArgs e)
{
DataGridItem dgi;
System.Web.UI.WebControls.TableCell tablecell;
Baris tabel System.Web.UI.WebControls.TableRow;
DataGrid grid = (pengirim sebagai DataGrid);
if(grid.Controls.Count == 0) kembali;
System.Web.UI.WebControls.Table table = (grid.Controls[0] sebagai 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 = new DataGridItem(0,0,ListItemType.Item);
for(int i=0;i<tablerow.Controls.Count;i++)
{
tablecell = Sistem baru.Web.UI.WebControls.TableCell();
dgi.Cells.Add(tablecell);
}
table.Controls.AddAt(table.Controls.Count-2,dgi);
}
}
Penjelasan: Yang dimaksud di sini adalah datagrid terikat dengan baris header/footer/pager dan pager di bawahnya.
Yang aneh adalah saya tidak dapat menambahkan cssstyle ke baris di sini. Setelah saya dgi.cssstyle="dumpTableRowClass"; baris yang baru ditambahkan ini akan runtuh. Jika Anda berhasil, tolong beri saya saran. Terima kasih.
Asli oleh athossmth, harap sebutkan saat mencetak ulang.