用PreRender解决DataGrid分页最后一页行数不满的排版问题

鸡级数

鸡级数

2016-01-29 18:52

用PreRender解决DataGrid分页最后一页行数不满的排版问题,用PreRender解决DataGrid分页最后一页行数不满的排版问题
 

DataGrid如果使用分页,最后一页可能不能“满页”,这样DataGrid的排版可能会出现问题,剩下的行每行太宽,整个DataGrid变得难看。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/asp/)

解决方法大概可以从三个地方考虑:
1、在DataSource中填上新数据行。
2、在DataGrid中填上新空白控件行。
3、在webpage中用javascript填上新的html控件行。

我采用的是第二种方法,在datagrid的prerender事件的响应方法中,在footer行之上填入空白行,代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/asp/)

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;j0;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原创,转载请注明。

 
展开更多 50%)
分享

猜你喜欢

用PreRender解决DataGrid分页最后一页行数不满的排版问题

ASP
用PreRender解决DataGrid分页最后一页行数不满的排版问题

DATAGRID分页增加首页、最后一页(源码)

Web开发
DATAGRID分页增加首页、最后一页(源码)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

DataGrid 分页问题

ASP
DataGrid 分页问题

Word分栏时最后一页分为行数相等的两栏的方法

word
Word分栏时最后一页分为行数相等的两栏的方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

word最后一页空白页怎么删除

word
word最后一页空白页怎么删除

用DataGrid分页

电脑网络
用DataGrid分页

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用Asp获取Dll加密新闻内容

用Asp获取Dll加密新闻内容

利用完美卸载保护网游密码

利用完美卸载保护网游密码
下拉加载更多内容 ↓