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原创,转载请注明。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器