您的位置:首页 > 其它

在GridView数据源为空时也显示表头

2009-08-14 13:19 204 查看
首先,需要GridView的AutoGenerateColumn属性为false。

进行正常的绑定后,添加页面事件

this.PreRender += OnPagePreRender;


这个事件只要比绑定晚就可以,不必非得是PreRender。

然后判断如果数据源无数据,就执行以下代码

if (gridView.DataSource is DataTable
&& ((DataTable)gridView).DataSource).Rows.Count == 0)
{
DataTable dt = new DataTable("EmptyTable");
foreach (DataControlField field in gridView.Columns)
{
if (field is BoundField)
{
dt.Columns.Add(((BoundField) field).DataField);
}
}
ArrayList values = new ArrayList();
for (int i = 0; i < dt.Columns.Count; i++)
{
values.Add(null);
}
dt.Rows.Add(values.ToArray());

gridView.DataSource = dt;
gridView.DataBind();
}


这样表头就显示出来了。

不过这里只对数据绑定类型的列(BoundField)进行了处理,如果还有其它类型的列还需要增加相应的处理代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: