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

原创 2005年04月27日 09:53:00

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

easyui datagrid 分页按钮,点击下一页,直接调转到最后一页

需求:若客户在datagrid中的中间某一页,如第三页,第四页等,查看该条或修改该条数据后,点击返回按钮,则需要datagrid仍在当前页,而不是重新加载datagrid,又变成第一页。 方法:当点...
  • lcl_lq
  • lcl_lq
  • 2017年02月23日 09:43
  • 1073

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

本人在编写ASP.NET程序中发现解决这个问题有一个很方便的方法,在这里也和大家一起分享一下。在设置好DataGrid的各项属性后,删除Height这个属性的值就可以了。...
  • lover1001
  • lover1001
  • 2005年04月28日 20:36
  • 654

EasyUI的datagrid删除后一页所有数据不自动显示前页数据

今天发现一个关于easyui的问题,一个用datagrid做的列表页面,删除最后一页所有数据后,发现刷新后列表为空,页码仍是这一页,正确的效果应该是加载上一页数据。于是看了代码,发现确认删除是会通过$...
  • I_Am_Zou
  • I_Am_Zou
  • 2016年09月18日 15:23
  • 981

smartform分页

http://space.itpub.net/166523/viewspace-374701 报表要求:(见下表) 要求: 1、不是套打,表格线也需要输出 2、每张报表打印8行记录...
  • yuqinying112
  • yuqinying112
  • 2012年12月28日 16:50
  • 3462

DataGrid 分页—最后一页

自定义导航栏    在图1的属性页中的“格式”栏中,我们可以设置“页导航”的外观样式。但是很多程序设计人员都喜欢用自己定义的导航栏,而不使用默认的上下页按钮或数字按钮(即出现1、2、3……页号的形式)...
  • fayxue
  • fayxue
  • 2008年07月23日 13:55
  • 303

hibernate分页,点击最后一页时查询速度很慢的解决方法

使用hibernate,通过query.setFirstResult(fist),query.setMaxResult()进行分页时,查询前面的几页速度很快(20w条记录,1秒内),但点击“最后一页”...
  • wangts
  • wangts
  • 2008年12月11日 19:02
  • 2907

【easyUI】datagrid使用分页时跳转到第一页

使用refresh方法选择跳转到某一页 var p = $("#datagrid").datagrid("getPager"); $(p).pagination({ pagePosition:...
  • swl979623074
  • swl979623074
  • 2017年07月04日 18:47
  • 1009

为什么每次上滑分页后只显示最后一页呢?上一页就不显示了,应该是追加的

public class DropDownListViewDemo extends Activity { private List story_entrys = null; private D...
  • Tramp_Tramp
  • Tramp_Tramp
  • 2014年09月29日 15:31
  • 635

ireport根据分组分页时,最后一页没有数据

我在使用ireport报表,我要根据分组实现分页,每页显示一组内容,发现最后一页没有数据。经过调试发现我的数据就是只有一组数据,没有第二组数据,但是报表分页时却分组了两页,第二页没有数据,我试着把报表...
  • wshulili1314
  • wshulili1314
  • 2010年04月06日 11:38
  • 2624

关于DataGrid自动分页的不能显示的问题

关于DataGrid自动分页的问题在属性生成器中设置DataGrid自动分页后并没有完全结束,这是因为它会在页面中只显示第一页。当点击下一页时页面刷新后竟然还显示第一页。这不是IsPostBack的问...
  • long1024
  • long1024
  • 2006年05月25日 13:47
  • 3328
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:分享:用PreRender解决DataGrid分页最后一页行数不满的排版问题
举报原因:
原因补充:

(最多只允许输入30个字)