您的位置:首页 > 其它

动态列的GridView嵌套解决方法整理

2010-04-14 11:23 381 查看
最近使用GridView做报表时遇到一个问题,在老大帮助下完成。现在记录一下。

项目需求类似如下的嵌套:

(例如一个借还系统,父级是借设备人的资料,子级是具体设备资料)

-------------------------

父编号 姓名 年龄

1 张三 20

----------------

子编号 产品类型 产品名称

1 路由器 凌凯  

----------------

2 李四 24

--------------------------

1.在一级数据的列数固定的情况下可直接使用如下嵌套:

基本思路是在行绑定事件中绑定嵌套的GridView2,这里如果GrideView2是动态列也可以,后台也能动态添加进去。

前台:

代码

protected void btnExport_Click(object sender, EventArgs e)
{
this.GridView1.AllowPaging = false;
BindDetailReportToGv();

Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=DetailsLog.xls");
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(sw);
this.GridView1.RenderControl(htmlWrite);
Response.Write(sw.ToString());
Response.End();
this.GridView1.AllowPaging = true;
}

public override void VerifyRenderingInServerForm(Control control)
{
// Confirms that an HtmlForm control is rendered for
}

其实解决这个问题应该还有更好的办法,关键在于2点:

第一个问题是如果一级数据中有动态列,那么分页时的行绑定事件内找不到行里的GridView2,

第二个问题是导出数据时由于采用colspan=“100%”,页面看上去是嵌套了,但是导出为excel后布局就会乱了。

您有更好的办法吗,欢迎交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: