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

2016-01-29 18:52 10 1 收藏

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

【 tulaoshi.com - ASP 】

 

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

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

解决方法大概可以从三个地方考虑:
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;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。

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

比较奇怪的是,无法在这里给一行加上cssstyle,一旦我dgi.cssstyle="dumpTableRowClass";这些新加入的行就塌缩了,有成功的朋友请指点一下,谢谢。

athossmth原创,转载请注明。

 

来源:https://www.tulaoshi.com/n/20160129/1507583.html

延伸阅读
标签: Web开发
Private Sub Command1_Click() WebBrowser1.Navigate "http://localhost/" Timer1.Enabled = TrueEnd Sub Private Sub Timer1_Timer() Dim doc, objhtml As Object Dim i As Integer Dim strhtml As String If Not WebBrowser1.Busy Then Set doc = WebBrowser1.Document i = 0 Set objhtml = doc.body.createtextrange() If Not IsNull(objhtml...
标签: 电脑入门
PowerPoint是我们最常用到的课间展示、资料播放工具。然而很多时候为了方便查看,希望能将PPT打印出来,但如果一页一张A4纸,又显得有些浪费。今天就给大家提供一个小方法,可以批量将8页PPT合并至一张A4 纸中,非常节省资源。 首先,打开需要打印的PPT,为了打印出来的清晰度着想,可以将底板先全部去掉。然后,选择文件-另存为,在文件类型...
标签: Web开发
刚在ajacn发了个贴,关于为XMLHttpRequest提供一个对象池。或许能帮到你,转贴如下: 在网上看到了有些同志提到了为Ajax的XMLHttpRequest提供一个对象池,也读了他们给出的实现代码。感觉不是特别理想,于是模仿apache的commons中的ObjectPool的思路写了一个简单的JavaScript版。  望指教:  代码 function ObjectPool(poo...
标签: 软件教程
我们在使用Word编辑时经常会遇到页眉页脚处理的问题,尤其是从网站上下载的Word文档,有的很多都含有页脚页眉,使得文档在打印时有很多不美观之处,所以本节教程我教教大家如何取消文档的页脚页眉,这里我以WPS软件教教大家,好了,我们一起来看看吧。 wps如何取消页眉页脚图文教程 WPS文字处理软件和微软office系列软件界面具有的功能具有一...
标签: Web开发
DataGrid是一个功能非常强大的ASP.NET Web服务器端控件,它除了能够方便地按各种方式格式化显示表格中的数据,还可以对表格中的数据进行动态的排序、编辑和分页。使Web开发人员从繁琐的代码中解放。实现DataGrid的分页功能一直是很多初学ASP.NET的人感到棘手的问题,特别是自定义分页功能,实现方法多种多样,非常灵活。本文将向大家介绍一...

经验教程

124

收藏

52
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部