程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 用PreRender解決DataGrid分頁最後一頁行數不滿的排版問題

用PreRender解決DataGrid分頁最後一頁行數不滿的排版問題

編輯:ASP技巧

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.CSS;這些新加入的行就塌縮了,有成功的朋友請指點一下,謝謝。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved