Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)归海一刀
published in(发表于) 2014/1/30 1:33:02
在GridView数据源为空时也显示表头_[Asp.Net教程]

在GridView数据源为空时也显示表头_[Asp.Net教程]
首先,需要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)进行了处理,如果还有其它类型的列还需要增加相应的处理代码。


If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759