分享:用PreRender解決DataGrid分頁最后一頁行數不滿的排版問題
2024-07-21 02:27:43
供稿:網友
,歡迎訪問網頁設計愛好者web開發。
datagrid如果使用分頁,最后一頁可能不能“滿頁”,這樣datagrid的排版可能會出現問題,剩下的行每行太寬,整個datagrid變得難看。
解決方法大概可以從三個地方考慮:
1、在datasource中填上新數據行。
2、在datagrid中填上新空白控件行。
3、在webpage中用javascript填上新的html控件行。
我采用的是第二種方法,在datagrid的prerender事件的響應方法中,在footer行之上填入空白行,代碼如下:
protected virtual void spidersurfgrid_prerender(object sender, system.eventargs e)
{
datagriditem dgi;
system.web.ui.webcontrols.tablecell tablecell;
system.web.ui.webcontrols.tablerow tablerow;
datagrid grid = (sender as datagrid);
if(grid.controls.count == 0) return;
system.web.ui.webcontrols.table table = (grid.controls[0] as 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 = new system.web.ui.webcontrols.tablecell();
dgi.cells.add(tablecell);
}
table.controls.addat(table.controls.count-2,dgi);
}
}
說明:這里考慮的是一個有header/footer/pager行,pager在下的,綁定的datagrid。
比較奇怪的是,無法在這里給一行加上cssstyle,一旦我dgi.cssstyle="dumptablerowclass";這些新加入的行就塌縮了,有成功的朋友請指點一下,謝謝。
athossmth原創,轉載請注明。